本文共 1103 字,大约阅读时间需要 3 分钟。
本脚本来自有学习阿铭的博文学习:
工作中,生产环境中一个业务在跑在多台机器上,为的是负载均衡,高可用。如何让这些代码保持一致呢?提示:本文中的S全部都$符,不要问为什么,马云爸爸的社区就这样。
#!/bin/bash#用途:代码上线的的shell脚本。#作者:Caron maktini#日期:2018年11月27日#版本:v0.1#提醒用户,是否更新了要上线的代码列表文件 read -p "你是否已经更新了文件列表./file.list?确认请输入Y,或者按其他任意键退出脚本。" a#如果直接按回车,也会退出脚本 if [ -z "$a" ]then exit 1fiif [ Sa == "y" -o $a == "Y" ]then echo "脚本将在2秒后,继续执行。" #每秒输出一个。共输出两个 for i in 1 2 do echo -n "." sleep 1 done echo else exit 1 fi #判断有无./rsync.exp文件 [ -f ./rsync.exp ] && rm -f ./rsync.exp #定义rsync. exp cat > ./rsync.exp << EOF #!/usr/bin/expect set passwd "密码" set host [lindex \$argv 0] set file [lindex \$argv 1]spawn rsync -avR --files-from=\$file / user#\S host:/ expect { "yes/no" {send "yes\r"} "password:" {send \$passwd\r} }expect eof EOF chmod a+x ./rsync.exp #定义检测文件是否存在的函数 if_file_exist(){ if [ ! -f $1 ] then echo "文件$1不存在,请检查。" exit 1 } #ip.list为所有WEB机器的ip列表 #file.list为要同步的文件列表 for ip in `cat ./ip.Iis` do ./rsync.exp $ip ./file.Iist done #善后处理 rm-f rsync.exp #创建user01用户,并且保证user01用户对WED用户有写权限。
转载地址:http://uomhl.baihongyu.com/