🚀 快速部署
# 1. 创建备份脚本
cat > /opt/backup-website.sh << 'EOF'
#!/bin/bash
# 配置
BACKUP_DIR="/backup/website"
WEBSITE_DIR="/var/www/html"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=30
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份网站文件
tar -czf $BACKUP_DIR/files_$DATE.tar.gz $WEBSITE_DIR
# 备份数据库(MySQL 示例)
mysqldump -u root -pYOURPASSWORD --all-databases > $BACKUP_DIR/db_$DATE.sql
gzip $BACKUP_DIR/db_$DATE.sql
# 删除旧备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
echo "备份完成:$DATE"
EOF
chmod +x /opt/backup-website.sh
# 2. 添加定时任务(每天凌晨 2 点)
crontab -e
0 2 * * * /opt/backup-website.sh >> /var/log/backup.log 2>&1
☁️ 云端同步配置
# 使用 rclone 同步到云存储
# 安装 rclone
curl https://rclone.org/install.sh | sudo bash
# 配置云存储(交互式)
rclone config
# 同步备份到云端
rclone sync /backup/website remote:backup-bucket/website
# 添加到备份脚本末尾
# rclone sync $BACKUP_DIR remote:backup-bucket/website
🔄 恢复测试
# 定期测试恢复流程(建议每季度一次)
# 恢复网站文件
tar -xzf /backup/website/files_20260405_020000.tar.gz -C /var/www/
# 恢复数据库
gunzip < /backup/website/db_20260405_020000.sql.gz | mysql -u root -p