Rumah  >  Soal Jawab  >  teks badan

linux - Bolehkah git post-receive hook melakukan git pull pada berbilang pelayan?

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?

巴扎黑巴扎黑2713 hari yang lalu559

membalas semua(1)saya akan balas

  • 曾经蜡笔没有小新

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

    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/

    balas
    0
  • Batalbalas