linux - Bolehkah git post-receive hook melakukan git pull pada berbilang pelayan?
巴扎黑
巴扎黑 2017-05-16 13:22:18
0
1
591

Penerangan Alam Sekitar

  1. di 服务器A/home/work/目录下创建了仓库/home/work/my-project.git

  2. akan/home/work/my-project.git克隆到网站根目录/home/www/

  3. Dikonfigurasikangit post-receive hook

#!/bin/bash

cd /home/www
env -i git pull

Cara ini setiap kali git push的时候,都可以把代码更新到服务器A/home/wwwdi bawah direktori

Penerangan masalah

Bagaimana jika saya 服务器B也克隆了/home/work/my-project.git到目录/home/www/下。有没有什么办法每次执行git push的时候,同时到服务器A服务器B执行git pullberoperasi?

Pendekatan semasa saya 服务器B上加一个crontab定时任务,每分钟到/home/www/目录下执行一下git pull,这样虽然也可以达到自动git push berkesan, tetapi terdapat juga perbezaan masa.

Adakah anda mempunyai amalan yang lebih baik?

巴扎黑
巴扎黑

membalas semua(1)
曾经蜡笔没有小新

Jika服务器A能通过ssh访问服务器B, anda boleh menambah baris dalam git post-receive hook

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

Selepas setiap git push, pelayan A akan mengklon /home/work/my-project.git ke direktori akar tapak web /home/www/, dan pada masa yang sama, ia akan menyegerakkan /home/www/ ke pelayan B /home melalui rsync
/www/

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan