56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | ||
| 
 | ||
| # 当前服务器上的文件路径
 | ||
| JAR_FILE="/tmp/AdvisorServer-2.6.7.jar"
 | ||
| 
 | ||
| # 目标服务器信息(格式:IP地址:端口)
 | ||
| SERVERS=(
 | ||
|     "172.26.1.3:22"
 | ||
|     "172.26.1.7:22"
 | ||
|     "172.26.1.9:22"
 | ||
|     "172.26.1.15:22"
 | ||
| )
 | ||
| 
 | ||
| # 目标路径
 | ||
| TARGET_DIR="/home/ubuntu"
 | ||
| 
 | ||
| # 1. 循环拷贝文件到所有服务器
 | ||
| for SERVER in "${SERVERS[@]}"; do
 | ||
|     # 获取 IP 和端口
 | ||
|     IP=$(echo $SERVER | cut -d ':' -f 1)
 | ||
|     PORT=$(echo $SERVER | cut -d ':' -f 2)
 | ||
| 
 | ||
|     # 拷贝 JAR 文件到目标服务器
 | ||
|     echo "Copying $JAR_FILE to $IP:$TARGET_DIR"
 | ||
|     scp -P $PORT $JAR_FILE ubuntu@$IP:$TARGET_DIR
 | ||
| done
 | ||
| 
 | ||
| echo "Files copied to all servers."
 | ||
| 
 | ||
| # 2. 所有文件拷贝完成后,停止服务
 | ||
| for SERVER in "${SERVERS[@]}"; do
 | ||
|     # 获取 IP 和端口
 | ||
|     IP=$(echo $SERVER | cut -d ':' -f 1)
 | ||
|     PORT=$(echo $SERVER | cut -d ':' -f 2)
 | ||
| 
 | ||
|     # 执行 start.sh 脚本
 | ||
|     echo "Stopping $START_SCRIPT on $IP"
 | ||
|     ssh -p $PORT ubuntu@$IP "sudo systemctl stop advisor-server"
 | ||
| done
 | ||
| 
 | ||
| echo "All services stopped."
 | ||
| 
 | ||
| # 3. 所有文件拷贝完成后,启动服务
 | ||
| for SERVER in "${SERVERS[@]}"; do
 | ||
|     # 获取 IP 和端口
 | ||
|     IP=$(echo $SERVER | cut -d ':' -f 1)
 | ||
|     PORT=$(echo $SERVER | cut -d ':' -f 2)
 | ||
| 
 | ||
|     # 执行 start.sh 脚本
 | ||
|     echo "Starting $START_SCRIPT on $IP"
 | ||
|     ssh -p $PORT ubuntu@$IP "sudo systemctl start advisor-server"
 | ||
| done
 | ||
| 
 | ||
| echo "All services started."
 | ||
| 
 | ||
| echo "All tasks completed." | 
