搜尋

首頁  >  問答  >  主體

linux - git post-receive hook 可以到多台伺服器上執行 git pull 嗎?

環境說明

  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的效果,但是也存在時間差。

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

巴扎黑巴扎黑2752 天前588

全部回覆(1)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:24:18

    如果服务器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/

    回覆
    0
  • 取消回覆