1,833   Linux Shell

由于集群部署了多台服务器,需要登录每台服务器进行备份和更新文件,所以用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

Your email address will not be published. Required fields are marked *