代码上线的shell脚本

本脚本来自有学习阿铭的博文学习:
工作中,生产环境中一个业务在跑在多台机器上,为的是负载均衡,高可用。如何让这些代码保持一致呢?

提示:本文中的S全部都$符,不要问为什么,马云爸爸的社区就这样。

#!/bin/bash
#用途:代码上线的的shell脚本。
#作者:Caron maktini
#日期:2018年11月27日
#版本:v0.1

#提醒用户,是否更新了要上线的代码列表文件 
read -p "你是否已经更新了文件列表./file.list?确认请输入Y,或者按其他任意键退出脚本。" a

#如果直接按回车,也会退出脚本 
if [ -z "$a" ]
then 
      exit 1
fi

if [ 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用户有写权限。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值