78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|   | #!/bin/bash
 | |||
|  | 
 | |||
|  | FILE_NAME="h5.zip" | |||
|  | 
 | |||
|  | # 当前服务器上的文件路径 | |||
|  | LOCAL_FILE="/tmp/$FILE_NAME" | |||
|  | 
 | |||
|  | # 目标服务器信息(格式:IP地址:端口) | |||
|  | SERVERS=( | |||
|  |     "172.26.1.9:22" | |||
|  |     "172.26.1.15:22" | |||
|  | ) | |||
|  | 
 | |||
|  | # 目标路径 | |||
|  | TARGET_DIR="/home/ubuntu" | |||
|  | 
 | |||
|  | # 目标文件路径 | |||
|  | TARGET_FILE="$TARGET_DIR/$FILE_NAME" | |||
|  | 
 | |||
|  | # 1. 删除所有服务器上原始包,并拷贝新文件 | |||
|  | for SERVER in "${SERVERS[@]}"; do | |||
|  |     # 获取 IP 和端口 | |||
|  |     IP=$(echo $SERVER | cut -d ':' -f 1) | |||
|  |     PORT=$(echo $SERVER | cut -d ':' -f 2) | |||
|  | 
 | |||
|  |     # 删除原始包 | |||
|  |     echo "Executing release_html.sh on $IP" | |||
|  |     ssh -p $PORT ubuntu@$IP "rm -rf $TARGET_DIR/$FILE_NAME" | |||
|  | 
 | |||
|  |     # 拷贝新文件 | |||
|  |     echo "Copying $LOCAL_FILE to $IP:$TARGET_DIR" | |||
|  |     scp -P $PORT $LOCAL_FILE ubuntu@$IP:$TARGET_DIR | |||
|  | 
 | |||
|  |     # 执行解压脚本 | |||
|  |     echo "Executing release_html.sh on $IP" | |||
|  |     ssh -p $PORT ubuntu@$IP "sudo bash /home/ubuntu/release_html.sh" | |||
|  | done | |||
|  | 
 | |||
|  | # 2. 循环拷贝文件到所有服务器 | |||
|  | for SERVER in "${SERVERS[@]}"; do | |||
|  |     # 获取 IP 和端口 | |||
|  |     IP=$(echo $SERVER | cut -d ':' -f 1) | |||
|  |     PORT=$(echo $SERVER | cut -d ':' -f 2) | |||
|  | 
 | |||
|  |     # 拷贝文件(如果文件存在) | |||
|  |     if [ -f "$H5_ZIP_FILE" ]; then | |||
|  |         echo "Copying H5_ZIP_FILE to $IP:$TARGET_DIR" | |||
|  |         scp -P $PORT $H5_ZIP_FILE ubuntu@$IP:$TARGET_DIR | |||
|  |     else | |||
|  |         echo "File $H5_ZIP_FILE does not exist, skipping." | |||
|  |     fi | |||
|  | 
 | |||
|  |     if [ -f "$ADMIN_ZIP_FILE" ]; then | |||
|  |         echo "Copying ADMIN_ZIP_FILE to $IP:$TARGET_DIR" | |||
|  |         scp -P $PORT $ADMIN_ZIP_FILE ubuntu@$IP:$TARGET_DIR | |||
|  |     else | |||
|  |         echo "File $ADMIN_ZIP_FILE does not exist, skipping." | |||
|  |     fi | |||
|  | done | |||
|  | 
 | |||
|  | echo "Files copied to all servers." | |||
|  | 
 | |||
|  | # 2. 所有文件拷贝完成后,执行服务器上的 release_html.sh | |||
|  | for SERVER in "${SERVERS[@]}"; do | |||
|  |     # 获取 IP 和端口 | |||
|  |     IP=$(echo $SERVER | cut -d ':' -f 1) | |||
|  |     PORT=$(echo $SERVER | cut -d ':' -f 2) | |||
|  | 
 | |||
|  |     # 执行 release_html.sh 脚本 | |||
|  |     echo "Executing release_html.sh on $IP" | |||
|  |     ssh -p $PORT ubuntu@$IP "sudo bash /home/ubuntu/release_html.sh" | |||
|  | done | |||
|  | 
 | |||
|  | echo "All html released." | |||
|  | 
 | |||
|  | echo "All tasks completed." | |||
|  | 
 |