Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1 KB

84.md

File metadata and controls

41 lines (34 loc) · 1 KB

题目要求

需求背景是: 一个业务,有3台服务器(A,B,C)做负载均衡,由于规模太小目前并未使用专业的自动化运维工具。有新的需求时,开发同事改完代码会把变更上传到其中一台服务器A上。但是其他2台服务器也需要做相同变更。

写一个shell脚本,把A服务器上的变更代码同步到B和C上。 其中,你需要考虑到不需要同步的目录(假如有tmp、upload、logs、caches)

参考答案

#!/bin/bash
#这个脚本用来代码上线
#作者:猿课-阿铭 www.apelearn.com
#日期:2018-12-12

dir=/data/wwwroot/www.aaa.com
B_IP=1.1.1.1
C_IP=2.2.2.2

rs()
{
    rsync -azP --exclude="logs" \
    --exclude="tmp" --exclude="upload" \
    --exclude="caches" $dir/ $1:$dir/
}

read -p "该脚本将会把本机的$dir下的文件同步到$B_IP和$C_IP上,是否要继续?y|n" c

case $c in 
    y|Y)
	rs B_IP
	rs C_IP
	;;
    n|N)
	exit
 	;;
    *)
	echo "你只能输入y或者n."
        ;;
esac