| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | #!/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" | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  | # 1. 停止服务所有服务 | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | for SERVER in "${SERVERS[@]}"; do | 
					
						
							|  |  |  |  |     # 获取 IP 和端口 | 
					
						
							|  |  |  |  |     IP=$(echo $SERVER | cut -d ':' -f 1) | 
					
						
							|  |  |  |  |     PORT=$(echo $SERVER | cut -d ':' -f 2) | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  |     # 执行 start.sh 脚本 | 
					
						
							|  |  |  |  |     echo "Stopping $START_SCRIPT on $IP" | 
					
						
							|  |  |  |  |     ssh -p $PORT ubuntu@$IP "sudo systemctl stop advisor-server" | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | done | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  | echo "All services stopped." | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  | # 1. 循环拷贝文件到所有服务器 | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | for SERVER in "${SERVERS[@]}"; do | 
					
						
							|  |  |  |  |     # 获取 IP 和端口 | 
					
						
							|  |  |  |  |     IP=$(echo $SERVER | cut -d ':' -f 1) | 
					
						
							|  |  |  |  |     PORT=$(echo $SERVER | cut -d ':' -f 2) | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  |     # 拷贝 JAR 文件到目标服务器 | 
					
						
							|  |  |  |  |     echo "Copying $JAR_FILE to $IP:$TARGET_DIR" | 
					
						
							|  |  |  |  |     scp -P $PORT $JAR_FILE ubuntu@$IP:$TARGET_DIR | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | done | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  | echo "Files copied to all servers." | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-27 11:23:21 +08:00
										 |  |  |  | # 3. 启动所有服务 | 
					
						
							| 
									
										
										
										
											2025-02-24 20:05:20 +08:00
										 |  |  |  | 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." |