78 lines
2.0 KiB
Bash
Raw Normal View History

2025-02-25 14:56:01 +08:00
#!/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."