1、进入线上git裸仓库
2、编辑post-receive
#!/bin/sh unset GIT_DIR cd /var/www/ git pull http://web:xxxxxxx@120.31.131.xxx:8099/root/withdraw_api.git
3、使用rsync
①、服务器端 A (192.168.48.128)
yum -y install rsync # 安装rsync同步服务 echo "root:root" > /etc/rsyncd.secrets #账号密码 chmod 600 /etc/rsyncd.secrets #这一步不可缺少,不然会报错。
# 编辑配置文件 /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid port = 873 address = 192.168.48.128 # 绑定本机ip uid = root #gid = root use chroot = yes read only = yes #limit access to private LANs #hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 #hosts deny=* max connections = 5 #motd file = /etc/rsyncd.motd #This will give you a separate log file #log file = /var/log/rsync.log #This will log every file transferred - up to 85,000+ per user, per sync #transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 #模块名 配置同步的文件目录 [rhel4home] path = /var/www/html/ list=yes ignore errors auth users = root secrets file = /etc/rsyncd.secrets comment = This is RHEL 4 data #exclude = easylife/ samba/ #排除要同步的目录
#添加端口放行
/sbin/iptables -I INPUT -p tcp --dport 873 -j ACCEPT
②、客户端 B(192.168.48.129)
yum -y install rsync # 安装rsync同步服务 # 客户端密码 /etc/rsyncd.secrets(仅保留明文密码就行) root rsync -auv --password-file=/etc/rsyncd.secrets root@192.168.48.128::rhel4home /var/www/html
说明:
客户端git推送文件到线上master裸仓库会触发git钩子并执行定义好的脚本同步拉取最新代码到项目部署目录
rsync作用是多台服务器同步一套代码