个人小站

[Terminal]rsync

字数统计: 748阅读时长: 2 min
2021/06/18

不正常的使用rsync可能会造成灾难性的后果,因此建议先带-n跑一次试试
请务必注意Linux命令的路径问题带不带’/‘是不一样的。
请务必注意如果rsync发现元数据不一致会需要整个档案重传。所以请注意是通过是ssh拷还是nfs挂载拷,混弄的话,会做无用功
rsync -avP source destination --log-file=$HOME/.rsync.log
其中 source destination 都可以使用ssh
root@ip:/目录

常用参数

1
2
3
4
5
6
7
8
9
10
11
 其中z为压缩,在网络性能足够的情况下,不开会快(公网才建议开,另外在内容本身为有损压缩或者压缩包的情况下可以不开,文本 或者 code 多的话,开会比较好)
-a 参数表示存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等,并且软链接也会同步过去。(理论来说,请务必确认是否需要使用这个参数,如果不使用,建议不要用rsync,寻找其他的替代方案。rsync基本所有功能,都基于此参数)
-u, --update 仅仅进行更新,也就是跳过所有已经存在于 DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
--ignore-existing参数表示只要该文件在目标目录中已经存在,就跳过去,不再同步这些文件。
-n 参数或--dry-run参数模拟将要执行的操作,而并不真的执行。配合-v参数使用,可以看到哪些内容会被同步过去。
-P 参数是--progress和--partial这两个参数的结合。
--remove-source-files 字面意思,注意不要乱用--delete
--exclude 排除特定文件或目录,相对路径,注意是相对,如果您想使用单个--exclude选项,则可以用大括号{}列出要排除的文件和目录,用逗号分隔
--exclude-from 排除特定文件或目录,相较于上面,这个是弄个文件列表,并进行引用
--port 端口 用于ssh是非标端口(网络上一堆老教程)
-H 保持硬链接

如无必要不要使用

1
-c、--checksum参数改变rsync的校验方式。默认情况下,rsync 只检查文件的大小和最后修改日期是否发生变化,如果发生变化,就重新传输;使用这个参数以后,则通过判断文件内容的校验和,决定是否重新传输。(比较操蛋的是这玩意校验是整个文件hash,所以全读一遍还是很慢的。)

群晖

群晖的rsync权限要自己开,否则没法使用(报错应该是 “ERROR: module is read only” ),另外支持的参数不完全一致,有些参数差异会导致无法使用


-z 参数先取消
增加 –port 以及群晖的说明
增加硬链接信息

原文作者:ted423

原文链接:http://ted423.github.io/Code/Terminal/rsync/

发表日期:June 18th 2021, 3:15:00 am

更新日期:April 5th 2023, 9:26:18 pm

版权声明:本站原创内容(一般是语句不通顺的那种)采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,转载内容以及不带个人观点的分享不在此例,摘抄有Wiki的内容的文章统一根据Wiki采用 CC BY-SA 3.0

CATALOG
  1. 1. 常用参数
  2. 2. 群晖