在伺服器A
的/home/work/
目錄下建立了倉庫/home/work/my-project.git
將/home/work/my-project.git
複製到網站根目錄/home/www/
git post-receive hook
#!/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的效果,但是也存在時間差。
曾经蜡笔没有小新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/