用 rsync 做增量备份:常用参数与避坑
rsync 是 Linux 下最常用的同步与备份工具,它的核心优势是增量传输:只传源和目标之间有差异的部分,第二次跑同一命令时速度会快很多,本地拷贝和远程备份都能用。
最常见的用法是 rsync -avh --progress 源目录 目标目录。其中 -a 是归档模式,保留权限、时间戳和软链接,基本必带;-v 输出详细过程;-h 让文件大小以人类可读的单位显示;–progress 显示每个文件的传输进度。跨机器备份加上 -z 压缩传输,并用 -e ssh 走 SSH 通道,例如 rsync -avhz -e ssh /data/ user@host:/backup/data/,既加密又不用额外开端口。
几个高频参数值得记住:–exclude 用来排除不需要备份的内容,如 --exclude=‘*.log’ 或 --exclude=‘.cache/’,可以写多次;–delete 让目标与源严格一致,源里删掉的文件目标也删;-n 或 --dry-run 是空跑模式,只显示会做什么不真执行。
用 rsync 做备份最容易踩的坑,排第一的是路径末尾的斜杠:rsync -a /data /backup/ 会把 data 目录本身拷进 backup,而 rsync -a /data/ /backup/ 是把 data 里面的内容拷进 backup,两者结果差一层目录,写脚本前先想清楚要哪种。第二是 --delete 与空目录的风险:如果源路径写错、写成一个空目录,再带上 --delete,会把目标里的备份一起清掉,所以带 --delete 的命令第一次跑务必先加 --dry-run 看一遍将要删除和传输的清单,确认无误再真跑。第三是权限与属主:在普通用户权限下跑 -a 时属主信息可能保不住,需要 root 属主时就用 sudo,并确认目标文件系统支持相应的元数据。
日常使用可以把一条带 --dry-run 验证过的命令写进脚本,再配合定时任务执行。总结起来:-a 保属性、–exclude 做减法、–delete 先空跑、斜杠分清目录层级,这四点掌握了,rsync 就能稳妥地承担起个人服务器的日常备份。
- 点赞
- 收藏
- 关注作者
评论(0)