自动同步nginx配置并重新加载nginx
时间:2025-06-15 来源:未知 投稿:admin 点击:次
#!/bin/bash
# ================== 配置部分 ==================
LOCAL_FILE="/etc/nginx/nginx.conf" # 本地配置文件路径
REMOTE_PATH="/etc/nginx/" # 远程服务器保存路径
REMOTE_USER="root" # 远程服务器登录用户
SSH_PORT="33699" # SSH 端口号(非默认 22)
# 目标服务器列表(请替换为你的实际服务器IP)
SERVERS=(
"192.168.0.3"
"192.168.0.4"
)
# nginx 重启命令(根据系统选择 systemctl 或 service)
RELOAD_CMD="systemctl reload nginx"
# 日志文件(可选)
LOGFILE="/var/log/sync_nginx.log"
# ================== 函数:记录日志 ==================
log() {
local message="$1"
echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" | tee -a "$LOGFILE"
}
# ================== 主程序开始 ==================
log "========== 开始同步 nginx 配置 =========="
for ip in "${SERVERS[@]}"; do
log "🔄 正在同步到服务器: $ip..."
# 同步配置文件
sshpass -p 'fwqzx@20250615' rsync -avz -e "ssh -p $SSH_PORT" "$LOCAL_FILE" "${REMOTE_USER}@$ip:$REMOTE_PATH"
if [ $? -eq 0 ]; then
log "✅ 配置文件同步成功: $ip"
else
log "❌ 配置文件同步失败: $ip"
continue
fi
# 执行远程 Nginx 重载
log "🔁 正在重载远程服务器 $ip 上的 Nginx..."
sshpass -p 'fwqzx@20250615' ssh -p "$SSH_PORT" "${REMOTE_USER}@$ip" "$RELOAD_CMD"
if [ $? -eq 0 ]; then
log "✅ Nginx 已成功重载: $ip"
else
log "❌ Nginx 重载失败: $ip"
fi
done
log "========== 同步完成 =========="
# ================== 配置部分 ==================
LOCAL_FILE="/etc/nginx/nginx.conf" # 本地配置文件路径
REMOTE_PATH="/etc/nginx/" # 远程服务器保存路径
REMOTE_USER="root" # 远程服务器登录用户
SSH_PORT="33699" # SSH 端口号(非默认 22)
# 目标服务器列表(请替换为你的实际服务器IP)
SERVERS=(
"192.168.0.3"
"192.168.0.4"
)
# nginx 重启命令(根据系统选择 systemctl 或 service)
RELOAD_CMD="systemctl reload nginx"
# 日志文件(可选)
LOGFILE="/var/log/sync_nginx.log"
# ================== 函数:记录日志 ==================
log() {
local message="$1"
echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" | tee -a "$LOGFILE"
}
# ================== 主程序开始 ==================
log "========== 开始同步 nginx 配置 =========="
for ip in "${SERVERS[@]}"; do
log "🔄 正在同步到服务器: $ip..."
# 同步配置文件
sshpass -p 'fwqzx@20250615' rsync -avz -e "ssh -p $SSH_PORT" "$LOCAL_FILE" "${REMOTE_USER}@$ip:$REMOTE_PATH"
if [ $? -eq 0 ]; then
log "✅ 配置文件同步成功: $ip"
else
log "❌ 配置文件同步失败: $ip"
continue
fi
# 执行远程 Nginx 重载
log "🔁 正在重载远程服务器 $ip 上的 Nginx..."
sshpass -p 'fwqzx@20250615' ssh -p "$SSH_PORT" "${REMOTE_USER}@$ip" "$RELOAD_CMD"
if [ $? -eq 0 ]; then
log "✅ Nginx 已成功重载: $ip"
else
log "❌ Nginx 重载失败: $ip"
fi
done
log "========== 同步完成 =========="
如果您的问题仍未解决,还可以加入服务器在线技术交流QQ群:8017413寻求帮助。
上一篇:云主机创建时,使用自定义数据
下一篇:没有了
下一篇:没有了