需求背景是:
一个业务,有3台服务器(A,B,C)做负载均衡,由于规模太小目前并未使用专业的自动化运维工具。有新的需求时,开发同事改完代码会把变更上传到其中一台服务器A上。但是其他2台服务器也需要做相同变更。
写一个shell脚本,把A服务器上的变更代码同步到B和C上。
其中,你需要考虑到不需要同步的目录(假如有tmp、upload、logs、caches)
#!/bin/bash echo "该脚本将会把A机器上的/data/wwwroot/www.aaa.com目录同步到B,C机器上"; read -p "是否要继续?(y|n) " rs() { rsync -azP \ --exclude logs \ --exclude upload \ --exclude caches \ --exclude tmp \ www.aaa.com/ $1:/data/wwwroot/www.aaa.com/ } if [ $REPLY == 'y' -o $REPLY == 'Y' ] then echo "即将同步……" sleep 2 cd /data/wwwroot/ rs B机器ip rs C机器ip echo "同步完成。" elif [ $REPLY == 'n' -o $REPLY == 'N' ] then exit 1 else echo "请输入字母y或者n" fi
本文转自 15816815732 51CTO博客,原文链接:http://blog.51cto.com/68686789/1980112