🛡️ VPS & 博客自动化备份实战方案 (3-2-1 原则简化版)

🛡️ VPS & 博客自动化备份实战方案 (3-2-1 原则简化版)

刚入手一台新 VPS (Ubuntu 22.04),上面跑着我的 WordPress 博客。虽然服务商可能有快照,但“数据握在自己手里”才是最高级的安全感。今天分享一套我刚部署好的 全自动两级备份方案


备份逻辑:两级跳

我们遵循 3-2-1 备份原则 的简化版:

  1. 第一级 (本地快照): 在 VPS 上定时打包数据库和网页文件,保留 7 天,方便快速恢复。
  2. 第二级 (异地同步): 每天由家里的 Mac 自动把 VPS 上的备份包“拉”回来,实现数据异地存放。

第一步:VPS 侧自动化 (创建备份脚本)

在 VPS 的 /root 目录下创建一个名为 backup.sh 的脚本:

#!/bin/bash

# --- 配置区 ---
BACKUP_DIR="/root/backups"
WP_ROOT="/var/www/html/wordpress"
DB_NAME="wordpress"
DB_USER="wpuser"
DB_PASS="你的数据库密码"
DATE=$(date +%Y-%m-%d)
KEEP_DAYS=7

# --- 准备工作 ---
mkdir -p $BACKUP_DIR

# --- 1. 备份数据库 ---
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_$DATE.sql

# --- 2. 备份网页文件 ---
tar -czf $BACKUP_DIR/files_$DATE.tar.gz -C $WP_ROOT .

# --- 3. 清理旧备份 (保留 7 天) ---
find $BACKUP_DIR -name "*.sql" -mtime +$KEEP_DAYS -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +$KEEP_DAYS -delete

给脚本执行权限:

chmod +x /root/backup.sh

第二步:设置定时任务 (VPS Cron)

我们希望 VPS 每天凌晨 4:00 自动执行备份。输入 crontab -e 并添加:

0 4 * * * /root/backup.sh

第三步:Mac 侧自动化 (远程拉取)

在本地 Mac 上,我们利用 rsync 增量同步功能,将 VPS 上的备份目录同步到本地文件夹。

# 本地执行此命令
rsync -avz -e "ssh -p 443" root@YOUR_VPS_IP:/root/backups/ /Users/YOUR_NAME/backups/vps_blog/

小贴士
1. 我将 SSH 端口改成了 443 以增强安全性并规避某些网络限制。
2. 必须配置 SSH 免密登录 (Key Auth),否则自动化脚本会卡在输入密码环节。


总结

这套方案的优点是:

  • 全自动:配置好后,不需要人工干预。
  • 低成本:利用现有的 Linux 命令,不依赖昂贵的插件。
  • 高安全:一份在云端,一份在手边,哪怕 VPS 厂商跑路也不怕。

数据无价,备份先行。🐕🐾

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注