代码上线的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用户有写权限。




相关文章
|
23天前
|
Java Shell Linux
使用 sh -x 进行 shell 脚本调试
使用 sh -x 进行 shell 脚本调试
34 9
使用 sh -x 进行 shell 脚本调试
|
4天前
|
监控 关系型数据库 MySQL
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
|
13天前
|
存储 Shell 应用服务中间件
[ansible]wget批量调用shell脚本
[ansible]wget批量调用shell脚本
|
16天前
|
运维 监控 Shell
掌握100个开箱即用的Shell脚本~(附PDF)
Shell脚本是实现Linux系统管理及自动化运维所必备的重要工具。许多其它岗位的小伙伴也经常使用Shell脚本来实现某项需求。 今天分享《100个shell脚本案例》,共有55页,支持文字搜索定位,代码清晰可复制。
|
23天前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
29 3
|
1月前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)
|
1月前
|
Shell Linux C语言
|
1月前
|
Shell 网络安全
shell脚本 配饰ssh
【7月更文挑战第15天】
23 4
|
23天前
|
Shell Linux
Shell 脚本编程学习
Shell 脚本编程学习
22 0
|
1月前
|
Shell
Shell 脚本编程保姆级教程(下)
Shell 脚本编程保姆级教程(下)