微服务环境部署时,几十台机器需要部署系统,编写文件传输脚本如下.
默认读取同级目录下的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 账号 密码 源文件 目标文件夹
其中 源文件 设定时 可以加 “|” 进行同一文件夹下的多个文件传输
传输一个文件时 “|” 可加可不加 皆可