背景:某项目有8台生产服务器,当预生产服务器项目测试通过后,需要将预生产某目录下文件同步推送到8台服务器对应文件目录,若一台一台操作,无疑效率很慢。当前解决方法为在预生产服务器上编写脚本,同步推送到8台服务器。
一、准备
Linux 安装 sshpass , 使用sshpass可以配置密码,实现当前服务器执行其它服务器脚本无需再输密码
二、编写脚本
#!/bin/sh
#path90="/home/weblogic/weblogic10/user_projects/domains/base_domain/lztest/"
appdir=/home/weblogic/weblogic10/user_projects/domains/base_domain/applications
cd $appdir
ips=('IP1' 'IP2' 'IP3' 'IP4')
for ip in ${ips[*]}; do
echo $ip':'同步重启中===================================================================
/usr/local/bin/sshpass -p "服务器密码" ssh weblogic@"$ip" "/home/weblogic/weblogic10/user_projects/domains/base_domain/newStop.sh"
echo $ip”服务器停止完成........。。。。.........“
/usr/local/bin/sshpass -p "服务器密码" rsync -rvc$1 --delete $appdir/citsonline $appdir/citsb2b weblogic@$ip:$appdir
echo $ip”服务器代码从90同步完成.................“
/usr/local/bin/sshpass -p "服务器密码" ssh weblogic@"$ip" "/home/weblogic/weblogic10/user_projects/domains/base_domain/newStart.sh"
echo *********************************$ip':'同步重启完成*******************************
done