VPS自动异地备份配置:restic + cron实战,数据再也不怕丢


导读:老手和新手最大的区别之一,是老手都做备份。本文用restic + cron搭建自动异地备份:整站和数据库每天加密压缩后推送到远程存储,配置一次,长期安心。

一、为什么选restic

  • 加密存储:备份落在别人服务器上也不担心泄露;
  • 增量去重:每天备份只传变化部分,省空间省流量;
  • 后端丰富:S3、SFTP、WebDAV、本地目录都支持;
  • 单二进制文件,安装简单,文档完善。

二、安装

apt install restic -y

三、初始化仓库(以SFTP为例)

export RESTIC_PASSWORD=你的加密密码
restic -r sftp:user@备份机:/backups/vps1 init

密码用于加密备份,务必另行妥善保存,丢了密码备份就无法恢复。

四、编写备份脚本

nano /usr/local/bin/backup.sh

写入以下内容:

#!/bin/bash
set -e
export RESTIC_PASSWORD=你的加密密码
REPO=sftp:user@备份机:/backups/vps1

# 导出数据库
mysqldump -u root --all-databases > /tmp/all-db.sql

# 备份站点、配置和数据库导出文件
restic -r $REPO backup /var/www /etc/nginx /tmp/all-db.sql --tag daily

# 清理旧备份:保留7天日备+4周周备+6个月备
restic -r $REPO forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

rm -f /tmp/all-db.sql

赋予执行权限:

chmod +x /usr/local/bin/backup.sh

五、加入cron定时任务

crontab -e

添加一行,每天凌晨3点自动执行:

0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

六、验证与恢复演练

查看备份快照:

restic -r $REPO snapshots

做一次恢复演练,把最新备份恢复到临时目录:

restic -r $REPO restore latest --target /tmp/restore-test

检查文件完整、数据库能导入,才算备份真正可用。没做过恢复演练的备份,等于没有备份。

七、几个注意事项

  1. 备份机要和主机分离,最好不同商家,避免一锅端;
  2. 数据库导出文件放在/tmp,备份完即删,别长期留明文;
  3. 大站首次全量备份放低峰期跑,避免影响业务;
  4. 每月检查一次 /var/log/backup.log,确认定时任务没报错。

总结

备份的核心是三件事:自动化、异地、恢复演练。restic负责加密和增量,cron负责坚持,你负责每月演练一次恢复。配置半小时,换来的是删库不慌的底气。


手机扫码阅读

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

VPS到手先实测:CPU、磁盘、网络三大项怎么测才靠谱

VPS安全加固实战:新机到手必做的五道防线

评 论
更换验证码