Linux一键分发文件、应用等

微服务环境部署时,几十台机器需要部署系统,编写文件传输脚本如下.
默认读取同级目录下的data_list.conf 传输配置文件
Linux需要安装依赖软件Tcl、expect. 
#!/bin/bash
data_list="data_list.conf"

if [ "$1" != "" ];then
  data_list="$1"
fi

echo "开始时间:"`date "+%Y-%m-%d %H:%M:%S"`
cat $data_list | while read ip user pass sfile tdir
do
  #echo "IP is $ip"
  #echo "USER is $user"
  #echo "PASS is $pass"
  #echo "SFILE is $sfile"
  #echo "TDIR is $tdir"
  #echo \"command is : scp -r "$sfile" "$user"@"$ip":"$tdir"\"
 #sup_sfile=$(echo -e "${sfile}" | awk -F '\\|' '{print $0}')
  if [[ $sfile =~ '|' ]];then
    path="${sfile%%|*}"
    #echo "path is $path"
    sup_sfile="$(echo -e "${sfile#*|}" | sed 's/|/ /g' )"
    for s_sfile in $sup_sfile
    do
        #echo "s_sfile is $path$s_sfile"
        /usr/bin/expect -c "
          set timeout 3;
          spawn ssh -f -o StrictHostKeyChecking=no "$user"@"$ip" mkdir -p "$tdir"
          expect {
            \"(yes/no)?\" { send \"yes\r\";exp_continue }
            \"*ssword:\" { send \"$pass\r\";exp_continue }
          }
          spawn scp -r "$path$s_sfile" "$user"@"$ip":"$tdir"
          expect {
            \"(yes/no)?\" { send \"yes\r\";exp_continue }
            \"*ssword:\" { send \"$pass\r\";exp_continue }
          }
        
        "
        sleep 1
    done
  else
    sup_sfile="$(echo -e "${sfile}" | sed 's/|/ /g' )"
    for s_sfile in $sup_sfile
    do
        #echo "s_sfile is $s_sfile"
        /usr/bin/expect -c "
          set timeout 3;
          spawn ssh -f -o StrictHostKeyChecking=no "$user"@"$ip" mkdir -p "$tdir"
          expect {
            \"(yes/no)?\" { send \"yes\r\";exp_continue }
            \"*ssword:\" { send \"$pass\r\";exp_continue }
          }
          spawn scp -r "$s_sfile" "$user"@"$ip":"$tdir"
          expect {
            \"(yes/no)?\" { send \"yes\r\";exp_continue }
            \"*ssword:\" { send \"$pass\r\";exp_continue }
          }
        
        " 
        sleep 1
    done
  fi 
done  
echo "结束时间:"`date "+%Y-%m-%d %H:%M:%S"`

配置文件如下 data_list.conf
也可以自行定义多个conf文件,执行shell时进行指定参数即可

10.11.149.42 tomcat Edxd@123 /app/tomcat/scms/easyloan/system-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template|/app/tomcat/scms/easyloan/writeList.properties /app/tomcat/scms/easyloan
10.11.149.51 tomcat Edxd@123 /app/tomcat/scms/easyloan/dataApplication-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.52 tomcat Edxd@123 /app/tomcat/scms/easyloan/dataApplication-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.61 tomcat Edxd@123 /app/tomcat/scms/easyloan/afterloan-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.62 tomcat Edxd@123 /app/tomcat/scms/easyloan/afterloan-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.71 tomcat Edxd@123 /app/tomcat/scms/easyloan/customer-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.72 tomcat Edxd@123 /app/tomcat/scms/easyloan/customer-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.81 tomcat Edxd@123 /app/tomcat/scms/easyloan/rating-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.82 tomcat Edxd@123 /app/tomcat/scms/easyloan/rating-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.91 tomcat Edxd@123 /app/tomcat/scms/easyloan/asset-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.92 tomcat Edxd@123 /app/tomcat/scms/easyloan/asset-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.101 tomcat Edxd@123 /app/tomcat/scms/easyloan/archives-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.102 tomcat Edxd@123 /app/tomcat/scms/easyloan/archives-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.111 tomcat Edxd@123 /app/tomcat/scms/easyloan/riskwarn-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.112 tomcat Edxd@123 /app/tomcat/scms/easyloan/riskwarn-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.121 tomcat Edxd@123 /app/tomcat/scms/easyloan/loan-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.122 tomcat Edxd@123 /app/tomcat/scms/easyloan/loan-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.131 tomcat Edxd@123 /app/tomcat/scms/easyloan/credit-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.132 tomcat Edxd@123 /app/tomcat/scms/easyloan/credit-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.141 tomcat Edxd@123 /app/tomcat/scms/easyloan/badassets-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.142 tomcat Edxd@123 /app/tomcat/scms/easyloan/badassets-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.151 tomcat Edxd@123 /app/tomcat/scms/easyloan/classify-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.152 tomcat Edxd@123 /app/tomcat/scms/easyloan/classify-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.161 tomcat Edxd@123 /app/tomcat/scms/easyloan/accounting-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.162 tomcat Edxd@123 /app/tomcat/scms/easyloan/accounting-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.171 tomcat Edxd@123 /app/tomcat/scms/easyloan/billSystem-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.172 tomcat Edxd@123 /app/tomcat/scms/easyloan/billSystem-springboot-1.0.0-SNAPSHOT.jar|/app/tomcat/scms/easyloan/spring-boot.sh|/app/tomcat/scms/easyloan/startall.sh|/app/tomcat/scms/easyloan/stopall.sh|/app/tomcat/scms/easyloan/rules|/app/tomcat/scms/easyloan/kettle|/app/tomcat/scms/easyloan/template /app/tomcat/scms/easyloan
10.11.149.30 redis redis redis.tar.gz /app
10.11.149.31 redis redis redis.tar.gz /app
10.11.149.32 redis redis redis.tar.gz /app
10.11.149.33 redis redis redis.tar.gz /app
10.11.149.34 redis redis redis.tar.gz /app
10.11.149.11 nginx nginx nginx_web.tar.gz /app
10.11.149.12 nginx nginx nginx_web.tar.gz /app
10.11.149.13 nginx nginx nginx_web.tar.gz /app
10.11.149.14 nginx nginx nginx_web.tar.gz /app
10.11.149.21 tomcat tomcat eureka.tar.gz /app
10.11.149.22 tomcat tomcat eureka.tar.gz /app
10.11.149.23 tomcat tomcat zuul.tar.gz /app
10.11.149.24 tomcat tomcat zuul.tar.gz /app
10.11.149.181 tomcat tomcat /app/tomcat/apache-tomcat-8.5.41.zip
10.11.149.182 tomcat tomcat /app/tomcat/apache-tomcat-8.5.41.zip
10.11.149.11 nginx nginx dist.zip /app/tomcat/easyloan-ui
10.11.149.12 nginx nginx dist.zip /app/tomcat/easyloan-ui
10.11.149.13 nginx nginx dist.zip /app/tomcat/easyloan-ui
10.11.149.14 nginx nginx dist.zip /app/tomcat/easyloan-ui

ps:存在空行也无事,会忽略

目标ip 账号 密码 源文件 目标文件夹

其中 源文件 设定时 可以加 “|” 进行同一文件夹下的多个文件传输
传输一个文件时 “|” 可加可不加 皆可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值