定时备份与实时同步落地:cron + rsync + sersync
定时备份与实时同步落地:cron + rsync + sersync
上一篇配好了 rsync 备份通道,但”能传”不等于”可靠”。真正的企业备份要有三件事:定时自动跑、校验完整性、失败要告警。这篇把备份闭环补完,再加一份”实时同步”方案。
一、定时备份:一个完整的客户端脚本
脚本职责:打包要备份的内容 → 携带 md5 校验信息 → 推送到备份服务器 → 本地只留最近 7 天。
1 |
|
1 | # 每天 01:00 执行 |
二、校验 + 邮件告警(服务端)
备份传完不算完,还得确认备份是完整的。服务端每天对账:用客户端留下的 md5 文件校验落盘数据,结果发邮件给管理员。
1 |
|
1 | # 每天 05:00 执行校验(备份 01:00 完成后,留足传输时间) |
没有变量的备份是”假备份”,而这个闭环是:传完即校验、校验完即告警、告警完留痕。
三、实时同步:sersync(rsync + inotify)
定时任务有延迟——文件刚被篡改、或者业务要求秒级同步时,要用 inotify 监听目录变化,变化即触发 rsync。sersync 是最成熟的封装(原生 inotify-tools 脚本易漏事件)。
1 | # 1. 服务端(目标机)装 rsync 并配好多模块(同上篇 rsyncd.conf) |
坑位提醒:同步多个目录需要多份 confxml + 多进程,一份配置管一个目录;海量文件场景先调大 inotify 上限:
1 | sysctl -w fs.inotify.max_user_watches=524288 |
四、NFS 高可用演练(故障切换)
实时同步的终极用途:NFS 主备切换。两台机器保持目录一致(用上面的实时同步),主 NFS 挂了就切备机:
1 | # 1. nfs 与 backup 两台服务配置保持一致(共享目录、权限、运行身份 www/666) |
生产里这套再配个脚本或让业务侧感知主备地址(虚拟 IP 更好),切换时间从”小时级”降到”分钟级”。
小结
备份体系的完整形态:cron 定时 + rsync 传输 + md5 校验 + 邮件告警 + sersync 实时兜底。工具都是现成的,架构和脚本规范才是沉淀下来的资产——这套脚本模板之后每接一个新服务,改几个变量就能复用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuminDream's Blogs!


