先手动执行rsync建立基础备份,再通过cron定时增量同步并可选添加日志、排除文件和自动清理旧备份。

用 rsync + cron 是最常用、稳定又灵活的方案,适合日常自动备份指定文件夹。
用 rsync 做增量备份(推荐)
rsync 只传变化的文件,省带宽、省时间、不重复占用空间。比如把 /home/user/docs 备份到 /backup/docs:
- 先手动跑一次建立基础备份:
rsync -av --delete /home/user/docs/ /backup/docs/ -
注意末尾斜杠:源路径带
/表示同步内容,不带则同步整个目录名 -
--delete让备份保持和源一致(删掉源里已删除的文件),如不需要可去掉 - 加
--exclude='*.tmp'可跳过临时文件,按需调整
用 cron 设置定时执行
编辑定时任务:crontab -e,加一行(例如每天凌晨2点执行):
0 2 * * * /usr/bin/rsync -av --delete /home/user/docs/ /backup/docs/ > /var/log/backup_docs.log 2>&1- 日志重定向方便排查问题;确保
/backup有足够空间和写权限 - 测试命令是否能直接运行:
/usr/bin/rsync ...(有些系统 cron 环境变量精简,建议写绝对路径)
加个简单版本控制(可选)
不想覆盖旧备份?可以用日期命名子目录:
- 脚本示例(保存为
/opt/backup_docs.sh):#!/bin/bash
DATE=$(date +\%Y\%m\%d_\%H\%M)
rsync -av /home/user/docs/ /backup/docs_$DATE/ - chmod +x 后,在 crontab 里调用这个脚本即可
- 配合
find /backup -name "docs_*" -mtime +7 -delete可自动清理7天前的备份
基本上就这些。不复杂但容易忽略路径斜杠、权限和日志验证——跑通一次手动命令,再上定时,基本就稳了。










