Ubuntu 系统备份 Nginx 配置
一 关键目录与文件
二 手动备份步骤
sudo tar -czf ~/nginx-conf-$(date +%F_%H-%M-%S).tar.gz -C /etc/nginx .sudo cp -a /etc/nginx/nginx.conf /etc/nginx/sites-available /etc/nginx/conf.d /var/log/nginx ~/nginx-conf-backup-$(date +%F)tar -tzf ~/nginx-conf-*.tar.gz | headtar -tzf ~/nginx-conf-*.tar.gz >/dev/null && echo "OK" || echo "FAIL"三 自动化备份脚本
#!/usr/bin/env bash
set -Eeuo pipefail
BACKUP_DIR="${BACKUP_DIR:-/opt/backups/nginx}"
DATE=$(date +%F_%H-%M-%S)
KEEP_DAYS="${KEEP_DAYS:-7}"
mkdir -p "$BACKUP_DIR"
# 打包配置与日志
tar -czf "$BACKUP_DIR/nginx-conf-$DATE.tar.gz" -C /etc/nginx .
tar -czf "$BACKUP_DIR/nginx-logs-$DATE.tar.gz" -C /var/log/nginx .
# 可选:同步到远端(示例:rsync 到备份服务器)
# rsync -avz "$BACKUP_DIR/" user@backup.example.com:/backups/nginx/
# 清理旧备份
find "$BACKUP_DIR" -name 'nginx-*.tar.gz' -mtime +"$KEEP_DAYS" -delete
echo "Nginx 配置与日志已备份至 $BACKUP_DIR (保留最近 $KEEP_DAYS 天)"
chmod +x backup_nginx.sh./backup_nginx.shsudo crontab -e 添加
30 2 * * * /path/to/backup_nginx.sh >> /var/log/nginx-backup.log 2>&1四 恢复与验证
sudo tar -xzf ~/nginx-conf-2025-08-30_10-00-00.tar.gz -C /sudo tar -xzf ~/nginx-conf-2025-08-30_10-00-00.tar.gz -C / etc/nginx/sites-availablesudo nginx -tsudo systemctl reload nginx五 实践建议