备份都放同一台机器上?rsync异地增量备份,一晚上搭好

来源:互联网 时间:2026-08-31

问一个扎心的问题:你的网站备份存在哪?如果答案是“同一台服务器的另一个目录”,那跟没备份区别不大——磁盘坏了、机器被删了、被勒索软件加密了,备份跟本体一起走。3-2-1备份原则里最容易被省略的就是异地这一份,rsync是补上这份成本最低的方案。

rsync的核心价值是增量同步:第一次全量传,之后只传有变化的块。网站目录每天变的可能就几兆,传输量小到可以忽略,所以敢天天跑、时时跑。

# 先配免密登录(备机上执行)
ssh-keygen -t ed25519 -N ""
ssh-copy-id root@主站IP

# 手动跑一次全量,看速度和体积
rsync -avz --progress \
-e "ssh -p 22" \
root@主站IP:/web/html/ /backup/web/html/
# -a 保持权限时间戳 -v 详细 -z 压缩传输
# 注意源路径结尾的斜杠:/html/ 是目录内容,/html是整个目录
# 备份机上的定时任务 /etc/cron.d/site-backup
# 每天凌晨3点拉取网站目录
0 3 * * * root rsync -az --delete \
-e "ssh -p 22" \
root@主站IP:/web/html/ /backup/web/html/ >> /var/log/rsync_web.log 2>&1

# 每天凌晨4点拉数据库导出(主站cron先生成sql.gz)
0 4 * * * root rsync -az \
root@主站IP:/backup/db/$(date +\%F)/ /backup/db/$(date +\%F)/

--delete参数慎用但要会用:它的意思是“源里删了的,目标里也删”,两边完全一致。好处是备机不会堆积垃圾文件,坏处是主站被黑、木马文件被同步过来,备机也被污染。我的做法是日常同步带--delete,同时每周日再打一个带日期的快照目录不删,相当于留一个回滚点。

安全上有两点必须做:备机只开密钥登录禁密码禁root密码(前面SSH加固写过);备机上的备份目录可以设成追加权限,chattr +a让文件只能增加不能删除,勒索软件就算拿到备机权限也加密不了历史备份。

# 防篡改:备份目录只许追加
chattr +a /backup/web
# 需要清理时先解锁
chattr -a /backup/web

最后还是那句老话:没做过恢复演练的备份不算备份。每个季度找台测试机,拿备份把站拉起来一次,顺便记录恢复耗时。真出事那天,你需要的是“两小时恢复上线”的把握,而不是一堆不知道能不能用的压缩包。

数据来源:rsync官方手册页

相关文章

A5创业网 版权所有