rsync适合轻量日常增量备份,borgbackup更安全但需注意仓库完整性;推荐组合使用,配合flock防冲突、SSH优化和定期恢复验证。

备份方案选 rsync 还是 borgbackup?
普通服务器日常增量备份,rsync 足够轻量、可控且兼容性好;但若需加密、去重、版本快照和跨设备恢复能力,borgbackup 是更安全的选择。两者不互斥——常见做法是用 rsync 做本地快速同步,再用 borgbackup 对同步后的目录做压缩加密归档。
注意:rsync 默认不校验文件内容一致性(仅靠 mtime/size),加 --checksum 会显著拖慢速度;borgbackup 默认启用内容定义块去重,首次备份慢,后续极快,但需要保留完整的 repo 目录,删错一个文件可能损坏整个仓库。
crontab 定时任务里怎么避免备份冲突?
多个备份任务并行运行容易导致源文件被修改、目标目录被覆盖或锁文件争用。关键做法是加锁 + 状态检查:
- 用
flock包裹整个备份命令,例如:flock -n /tmp/backup.lock -c "rsync -a /data/ /backup/" - 在脚本开头检查上一次
rsync进程是否还在:pgrep -f "rsync.*data" > /dev/null && exit 1 - 每次备份前写入时间戳文件:
date +%s > /backup/.last_run,便于监控任务是否“假死”
备份到远程 NAS 时,ssh 连接失败的典型原因
多数“备份中断”实际是 ssh 层面的问题,而非 rsync 或 borg 本身。常见触发点:
部分功能简介:商品收藏夹功能热门商品最新商品分级价格功能自选风格打印结算页面内部短信箱商品评论增加上一商品,下一商品功能增强商家提示功能友情链接用户在线统计用户来访统计用户来访信息用户积分功能广告设置用户组分类邮件系统后台实现更新用户数据系统图片设置模板管理CSS风格管理申诉内容过滤功能用户注册过滤特征字符IP库管理及来访限制及管理压缩,恢复,备份数据库功能上传文件管理商品类别管理商品添加/修改/
- 远程
sshd配置了MaxStartups限制,突发连接被拒绝,错误类似:ssh: connect to host x.x.x.x port 22: Connection refused - 客户端未配置密钥自动登录,
rsync在后台执行时无法交互输入密码 - 远程路径使用绝对路径但权限不足,例如
borgrepo 放在/mnt/nas/backup,而挂载用户无写权限 - 网络波动导致长连接超时,建议在
~/.ssh/config中为该主机添加:ServerAliveInterval 60和ServerAliveCountMax 3
如何验证一次备份真的可用?
90% 的备份故障暴露在恢复环节。不能只看日志里有没有 “success”,必须定期抽检:
- 对
rsync备份,用rsync --dry-run --delete反向比对,确认差异项为 0 - 对
borgbackup,至少每月执行一次:borg check --verify-data repo::archive-name(注意:耗 I/O,避开业务高峰) - 挑一个非关键目录,用
borg extract解出文件后,sha256sum校验原始与恢复后的内容是否一致 - 真正致命的是元数据损坏——比如
borgrepo 的config文件被静默破坏,此时borg list都会失败,所以建议把 repo 的config和hints.0文件单独同步一份到其他位置
备份不是“设完 crontab 就结束”的事,最常被跳过的其实是恢复演练和元数据保护。只要 repo 目录或 rsync 目标盘的 inode 信息异常,表面成功的备份可能根本无法还原。









