VPS 数据备份与恢复实战:从定时自动备份到一键恢复一次讲清


很多站长把 VPS 买回来、网站跑起来之后,就很少再管服务器里的数据了。直到某天发现商家跑路、磁盘损坏、或者手滑删了数据库,才追悔莫及。数据这个东西,平时看不见摸不着,丢了才知道疼。这篇文章按真实操作顺序,把 VPS 备份从手动打包、定时自动备份,到异地容灾和实战恢复,一次讲清。

一、先搞清楚:你的 VPS 上什么最值钱

很多人以为备份就是把网站文件打包一份,其实 VPS 上值得备份的不止这些:

1. 网站源码与上传文件:WordPress 之类的站点目录、上传目录,丢了重装很麻烦。

2. 数据库:MySQL 或 MariaDB 的数据,这是网站的灵魂,没了数据库网站基本就废了。

3. 配置文件:Nginx 的站点配置、PHP 的 php.ini、SSH 配置、crontab 定时任务,重装系统之后全靠它们恢复。

4. 证书与密钥:SSL 证书、SSH 密钥,丢了要么花钱重买证书,要么重配一堆客户端。

二、手动备份入门:两条命令搞定

第一步,备份网站文件,用 tar 打包:

tar -czvf /backup/www_$(date +%F).tar.gz /www/wwwroot/你的站点目录

第二步,备份数据库,用 mysqldump 导出再压缩:

mysqldump -uroot -p你的密码 你的数据库名 | gzip > /backup/db_$(date +%F).sql.gz

两条命令执行完,/backup 目录下就有了当天的网站和数据库备份。手动备份简单直接,但坏处是要靠人记着去执行,而人最容易忘的恰恰是这件事。

三、定时自动备份:让服务器自己干

备份要形成习惯,不能靠手动记,用 crontab 定时任务最靠谱。先写一个备份脚本 /root/backup.sh:

#!/bin/bash

BACKUP_DIR=/backup

DATE=$(date +%F)

tar -czvf $BACKUP_DIR/www_$DATE.tar.gz /www/wwwroot/你的站点目录

mysqldump -uroot -p你的密码 你的数据库名 | gzip > $BACKUP_DIR/db_$DATE.sql.gz

find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

脚本里最后两行的意思是只保留最近 7 天的备份,避免备份文件把磁盘撑爆。然后给脚本加执行权限,并写入定时任务:

chmod +x /root/backup.sh

crontab -e

在打开的编辑器里加一行,让服务器每天凌晨 3 点自动执行:

0 3 * * * /root/backup.sh >> /var/log/backup.log 2>&1

这样服务器每天都会自动备份,你只需要隔几天看一眼 /var/log/backup.log,确认备份有没有成功。特别提醒:mysqldump 的输出一定要重定向到日志,不然哪天数据库密码改了、备份悄悄失败了,你可能几个月后才发现。

四、异地备份:别把鸡蛋放在一个篮子里

备份存在同一台 VPS 上有个致命问题:如果整台机器挂了、或者商家跑路了,本地备份会跟着一起消失。所以异地备份是必须的,这里推荐两种最常用的方式。

方式一:rsync 同步到另一台服务器。如果你手上有两台 VPS,可以用 rsync 把 /backup 目录增量同步过去:

rsync -avz --delete /backup/ root@另一台服务器IP:/backup/

配合 cron 每天同步一次,两台机器互为备份,非常稳妥。

方式二:备份到对象存储。国内用阿里云 OSS、腾讯云 COS,国外用 AWS S3、Backblaze B2,用 rclone 就能一键上传:

rclone copy /backup 你的存储桶名:/backup

对象存储的好处是便宜、容量大、不怕单点故障,基本是现在最主流的异地备份方案。

五、恢复实战:备份能恢复才有意义

备份做得再勤,不会恢复等于白做。恢复分两步。

第一步,恢复数据库。解压备份文件后导入:

gzip -d db_2026-11-05.sql.gz

mysql -uroot -p 你的数据库名 < db_2026-11-05.sql

第二步,恢复网站文件。解压回原目录,并修复文件属主:

tar -xzvf www_2026-11-05.tar.gz -C /www/wwwroot/

chown -R www:www /www/wwwroot/你的站点目录

恢复完成后清一下浏览器缓存、刷新一下 CDN,确认网站正常再收工。强烈建议:备份配好之后,找一天在另一台新机器上完整演练一次恢复流程,真出事了才第一次练手,大概率会手忙脚乱。

六、几个容易被忽略的细节

1. 备份要加密。备份文件里有数据库密码、用户数据,泄露出去就是事故,用 gpg 或 zip -P 给备份文件加上密码。

2. 备份过程中保持数据一致。数据库导出建议加 --single-transaction 参数,避免备份到一半的数据。

3. 记住 3-2-1 原则:3 份备份、2 种介质、1 份放异地。这是数据安全的基本功。

4. 定期检查备份能不能正常解压,别备份成功就以为万事大吉。

备份这件事,最大的成本不是工具也不是时间,而是想起来才做。把自动备份配好、异地备份跑通、恢复流程演练一遍,你的网站才算真正上了保险。如果你的 VPS 还没做备份,今天就动手配一套吧。


手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

VPS 定时任务实战:从 Crontab 到自动化运维一次讲清

1Panel 面板实战:从一键安装到 Docker 部署网站与自动备份一次讲清

评 论