0%

rsync命令的安装使用

rsync命令简介

rsync is an open source utility that provides fast incremental file transfer. rsync is freely available under the GNU General Public License and is currently being maintained by Wayne Davison.

rsync是一个开源的提供快速增量文件传输的工具。rsync使用GNU协议,当前维护者是Wayne Davison。

rsync是开源的增量传输工具,速度很快。基本原理是文件分块检查md5,相同就不再传输,不同就增量传输。
rsync可以代替本地拷贝命令cp,也可以代替远程拷贝命令scp。

参考文档:

安装rsync

centos

1
yum install -y rsync

rsync命令说明

命令格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#Local:
rsync [OPTION...] SRC... [DEST]

#Access via remote shell:
#Pull:
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
#Push:
rsync [OPTION...] SRC... [USER@]HOST:DEST

#Access via rsync daemon:
#Pull:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
#Push:
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST)

特别注意:

  • SRC目录后面加/,表示拷贝SRC中的内容到DEST目录中
  • SRC目录后面不加/,表示在DEST目录中新建一个SRC目录,然后SRC中的内容到DEST/SRC
  • DEST目录后加不加/不做区别

常用参数

  • -v:显示传输的过程,-vvvv可以获取更详细信息
  • –partial:保留部分传输的文件,也就是实现断点续传功能
  • –progress:显示进度
  • -P:–partial 和 –progress的集合
  • -r:–recursive 对子目录以递归模式处理
  • -t:–times,保持mtime属性。
  • -o:–owner,保持owner属性
  • -p:–perms:保持perms属性(权限)
  • -g:–group:保持group属性(所属组)
  • –device:拷贝设备文件
  • –specials:拷贝特殊文件
  • -D:–device和–specials的集合
  • -l:–links 拷贝软链接,而非软链接指向的对象
  • -L:拷贝软链接,以及软链接指向的对象
  • -a:–archive 归档模式,对子目录以递归模式处理,并且保持文件属性。等同于-rtopgDl
  • -z:传输时进行压缩提高传输效率
  • –exclude:排除不需要传输的文件
  • –include:指定必须要传输的文件
  • -b:–backup 对目标上已存在的文件做一个备份,备份的文件名默认使用~做后缀
  • –backup-dir:指定备份文件的保存路径
  • -u:–update 仅在源mtime比目标mtime新时才拷贝
  • –delete:以SRC为主,对DEST进行同步。多则删,少则补。
  • –dry-run:模拟运行rsync,而不真正传输
  • e:指定要使用的远程shell程序,默认是ssh
  • existing:只更新目标端已存在的文件,目标端不存在的文件不传输
  • ignore-existing:只更新目标端不存在的文件,目标端存在的文件不传输
  • W:–whole-file 全量传输,而不是默认的增量传输

特别注意:

  • 不加-t参数,如果两个文件的md5相同,mtime不同,传输时会更改目标文件的mtime为当前时间,增量修改。
  • 加上-t参数,如果两个文件的md5相同,mtime不同,传输时会更改目标文件的mtime和源文件相同,增量修改。

更多内容参考 rsync文档

使用rsync

本地拷贝断点续传

需求:本地拷贝/opt/nginx目录中的所有文件,到/opt/nginx.bak,断点续传

1
rsync -P -avz /opt/nginx/ /opt/nginx.bak/

远程拷贝断点续传

需求:拷贝本地/opt/nginx目录中的所有文件,到远程服务器192.168.56.102:/opt/nginx目录中,断点续传

1
rsync -P -avz /opt/nginx/ 192.168.56.102:/opt/nginx/
  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-rsync-command/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~