rsync 预演是什么
预演选项让 rsync 只显示将要执行的动作而不真正落盘,配合逐项输出选项可以看清每个文件的处理类型:新增、更新、删除还是跳过。它是执行危险同步前的例行步骤,尤其在带删除选项或路径刚刚调整过时,几分钟的预演能避免一次不可逆的误操作。
基本信息
| 作用 | 只显示动作,不修改目标端 |
|---|---|
| 配套选项 | 逐项变化标记,用于看清每个文件的处理类型 |
| 输出解读 | 传入、删除、新增、大小与时间戳变化各有标记 |
| 存档价值 | 输出重定向到日志,事后可回溯判断依据 |
预演与逐项输出
预演与逐项输出
rsync -avni --delete /data/ /backup/data/
# 输出样例:
# >f+++++++++ newfile.txt 新增文件
# >f.st...... changed.log 内容与时间戳变化
# *deleting old.txt 将被删除
# 单独统计删除条数,删除量异常时立即停下排查
rsync -avni --delete /data/ /backup/data/ | grep -c '^\*deleting'变化标记解读
| 标记 | 含义 |
|---|---|
| > 开头 | 文件被传入目标端 |
| + 号 | 目标端原本不存在的文件 |
| s 与 t | 大小变化与时间戳变化 |
| deleting | 目标端将被删除的文件 |
| cd 前缀 | 目录的创建或删除动作 |
使用要点
- 预演结果要与预期比对:预期只新增几个文件却列出大量删除时,先检查源路径写错或挂载丢失
- 预演输出很长时不要只看结尾,把删除行单独过滤出来统计条数更有效
- 预演与正式执行之间源端仍在变化,超大数据量应先冻结写入或改用存储快照
- 把预演输出重定向存档:出问题时可以核对当时的判断依据
- 新脚本上线前必须走一次预演,尤其是包含删除与排除规则的组合
把预演输出重定向存档,例如输出到日志目录按日期命名,出问题时可回溯判断依据,比事后凭记忆复盘可靠得多。