linux - Le hook git post-receive peut-il effectuer git pull sur plusieurs serveurs?
巴扎黑
巴扎黑 2017-05-16 13:22:18
0
1
579

Description environnementale

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

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

  3. Configurégit post-receive hook

#!/bin/bash

cd /home/www
env -i git pull

De cette façon à chaque fois git push的时候,都可以把代码更新到服务器A/home/wwwsous l'annuaire

Description du problème

Et si je suis 服务器B也克隆了/home/work/my-project.git到目录/home/www/下。有没有什么办法每次执行git push的时候,同时到服务器A服务器B执行git pullen opération ?

Mon approche actuelle est 服务器B上加一个crontab定时任务,每分钟到/home/www/目录下执行一下git pull,这样虽然也可以达到自动git pushefficace, mais il y a aussi un décalage horaire.

Avez-vous de meilleures pratiques ?

巴扎黑
巴扎黑

répondre à tous(1)
曾经蜡笔没有小新

Si服务器A能通过ssh访问服务器B, vous pouvez ajouter une ligne dans le hook post-receive git

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

Après chaque push git, le serveur A clonera /home/work/my-project.git dans le répertoire racine du site Web /home/www/, et en même temps, il synchronisera /home/www/ avec /home du serveur B. via rsync
/www/

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal