linux - git post-receive hook 可以到多台伺服器上執行 git pull 嗎?
巴扎黑
巴扎黑 2017-05-16 13:22:18
0
1
589

環境說明

  1. 伺服器A/home/work/目錄下建立了倉庫/home/work/my-project.git

  2. /home/work/my-project.git複製到網站根目錄/home/www/

  3. ##配置了

    git post-receive hook

  4. #!/bin/bash
    
    cd /home/www
    env -i git pull
這樣每次

git push的時候,都可以把程式碼更新到伺服器A/home/www目錄下

問題描述

如果我在

伺服器B也複製了/home/work/my-project.git到目錄/home/www/下。有沒有辦法每次執行git push的時候,同時到伺服器A伺服器B執行git pull操作?

我現在的做法是在

伺服器B上加一個crontab定時任務,每分鐘到/home/www/目錄下執行一下 git pull,這樣雖然也可以達到自動git push的效果,但是也存在時間差。

請問大家有沒有什麼比較好的做法?

巴扎黑
巴扎黑

全部回覆(1)
曾经蜡笔没有小新

如果服务器A能通过ssh访问服务器B, 可以在git post-receive hook中加入一行

rsync -az -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" /home/www/ <服务器B的IP>:/home/www/

每次git push之後,伺服器A將/home/work/my-project.git克隆到網站根目錄/home/www/的同時,會透過rsync
將/home/www/同步到伺服器B的/home /www/

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板