由于集群部署了多台服务器,需要登录每台服务器进行备份和更新文件,所以用shell脚本循环操作服务器,代码如下:
前提条件:运行shell脚本的服务器已经配置了免密码登录集群服务器
#!/bin/bash ## # function start ## # 备份jar包 function backup_jar { # 存放jar包的服务器 local FUNC_JAR_ALL_IP="10.123.177.212 10.123.177.213" # 存放jar包的目录 local FUNC_JAR_PATH="/wcsapp/lib" # ssh 登录名 local FUNC_JAR_SERVER_NAME="weblogic" # 备份包名 local FUNC_BACKUP_NAME=`date '+%Y%m%d%H%M'` echo -e "\n" echo -e "START : backup jar \n" # 循环登入每台服务器进行备份 for FUNC_JAR_ONE_IP in ${FUNC_JAR_ALL_IP} do echo -e "\n" echo -e "SERVER_IP : ${FUNC_JAR_ONE_IP} \n" # 通过 ssh 免密码登录执行shell脚本,到达jar目录进行备份,并显示备份文件 ssh -T ${FUNC_JAR_SERVER_NAME}@${FUNC_JAR_ONE_IP} "cd ${FUNC_JAR_PATH};tar -cf ${FUNC_BACKUP_NAME}.tar *.jar;ls -l ${FUNC_BACKUP_NAME}.tar" done echo -e "\n" echo -e "END : backup jar \n" } # 更新jar包 function update_jar { # 存放jar包的服务器 local FUNC_JAR_ALL_IP="10.123.177.212 10.123.177.213" # 存放jar包的目录 local FUNC_JAR_PATH="/wcsapp/lib" # ssh 登录名 local FUNC_JAR_SERVER_NAME="weblogic" echo -e "\n" echo -e "START : update_jar \n" # 循环登入每台服务器进行更新 for FUNC_JAR_ONE_IP in ${FUNC_JAR_ALL_IP} do echo -e "\n" echo -e "SERVER_IP : ${FUNC_JAR_ONE_IP} \n" # 通过 scp 免密码登录更新文件到服务器 scp /target/*.jar ${FUNC_JAR_SERVER_NAME}@${FUNC_JAR_ONE_IP}:${FUNC_JAR_PATH} done echo -e "\n" echo -e "END : update_jar \n" } function run_main { backup_jar update_jar } ## # function end ## ## # main start ## run_main ## # main end ##
Leave a Reply