# rsync主要参数解释与常用用法

rsync是一个功能强大的文件同步工具,可以替代scp,支持通过SSH或rsync服务器进行文件和目录的同步。它提供了丰富的参数,如--compress用于压缩传输,-a表示归档模式,保留文件属性,-P显示进度并保留部分文件,-e用于指定SSH非标准端口。此外,还可以通过--exclude排除特定文件,--log-file记录日志,以及控制文件权限和执行过程的多种选项。
摘要由CSDN通过智能技术生成

rsync主要参数解释与常用用法


rsync可以完全替代scp工具,功能比scp丰富很多,可以实现你想要的很多功能,还能列出SRC端的文件清单。他的远程端可以是ssh server,也可以是rsync server,也可以是本地文件复制。

参数非常多,可以实现非常复杂的任务,但一般你只要记住这一两行就行了:

# 通过ssh:
rsync  -r -P -v -t -E -b --exclude=PATTERN    -e "ssh -p ${SSHD_PORT}"  root@192.168.1.11:/SRC/a.txt  /DEST/
# 通过rsync:
rsync  -r -P -v -t -E -b --exclude=PATTERN    rsync://root@192.168.1.11:${RSYNCD_PORT}::sss/SRC/a.txt  /DEST/

1 公共参数

1.1 执行方式

-n, --dry-run      试运行,不产生实际改变
--list-only        仅列出文件,不执行拷贝

1.2 执行过程

--progress         显示传输过程(速度、百分比)
-v, --verbose      显示传输汇总信息
--stats            显示详细传输信息及汇总信息,即包含`-v, --verbose`显示的信息
-q, --quiet        静默
-P                 等于 --partial --progress

1.3 其他

-e, --rsh=COMMAND  远程shell使用的命令,一般用于设置ssh非标端口,例如:【-e "ssh -p ${SSHD_PORT}"】

-z, --compress     压缩传输
-a, --archive      归档模式,等同:-rlptgoD (no -H,-A,-X)

--log-file=FILE    写日志到指定文件
--iconv=CONVERT_SPEC  转换文件名为指定字符集

2 用于源路径的参数

-d, --dirs        不递归目录(不拷贝目录)
-r, --recursive   递归目录拷贝
-R, --relative    使用相对路径名

-l, --links        拷贝软链接为软链接
-L, --copy-links   拷贝软链接指向的文件到目标路径

--exclude=PATTERN  排除匹配的PATTERN文件
--noatime          不修改原文件atime时间

3 用于目标路径的参数

--partial             保留部分文件,用于断点续传
--partial-dir=DIR       断点续传文件放到这个目录
-b, --backup          对于目标路径已经存在有同样的文件名时,将老的文件默认重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀 (see --suffix & --backup-dir)
-u, --update          如果目标文件更新一些,则跳过
--delay-updates       传输结束时再更新目标文件
-T, --temp-dir=DIR    在这个目录下创建临时文件
--ignore-existing     如果目标文件已存在,则跳过
--existing            如果目标文件不存在,则跳过,不创建新文件
-I, --ignore-times    不跳过任何文件,哪怕文件大小及修改时间都相同
--size-only             仅跳过文件大小一样的
--remove-source-files 拷贝完后,删除源文件 (non-dirs)
--delete              删除目标路径中无关的文件(即源路径中不存在的文件)
--force                 强制删除目标路径中无关的目录(哪怕目录不为空)

-k, --copy-dirlinks   将目标路径上指向目录的符号链接转换为引用目录
-K, --keep-dirlinks   将目标路径上的符号链接的目录视为目录

-p, --perms           保留权限
-A, --acls            保留ACL(包含--perms)
-E, --executability   保留可执行权限
-X, --xattrs          保留扩展属性
--chmod=CHMOD         修改目标文件及目录的权限为这个
-o, --owner           保留owner(super-user only)
-g, --group           保留group
-t, --times           保留修改时间

4 一般用法

4.1 HELP

SYNOPSIS
       Local:  rsync [OPTION...] SRC... [DEST]

       通过ssh:
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

       通过rsync:
         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(未指定DEST)时,则会列出SRC文件

4.2 本地示例(参数用法与到远程server一样)

# 简单
## 本地
rsync      /SRC/a.txt   /DEST/
## 通过ssh
rsync    /SRC/a.txt                         192.168.1.11:/DEST/
rsync    /SRC/a.txt                    root@192.168.1.11:/DEST/
rsync         192.168.1.11:/SRC/a.txt  /DEST/
rsync    root@192.168.1.11:/SRC/a.txt  /DEST/
### ssh非标端口
rsync    -e "ssh -p ${SSHD_PORT}"  root@192.168.1.11:/SRC/a.txt  /DEST/
## 通过rsync
rsync    /SRC/a.txt                                             192.168.1.11::sss/DEST/
rsync    /SRC/a.txt                                rsync://root@192.168.1.11::sss/DEST/
rsync                 192.168.1.11::sss/SRC/a.txt  /DEST/
rsync    rsync://root@192.168.1.11::sss/SRC/a.txt  /DEST/
### rsync非标端口
rsync    rsync://root@192.168.1.11:${RSYNCD_PORT}::sss/SRC/a.txt  /DEST/
#
#
# 目录
rsync  -r  /SRC/a.txt  /DEST/
# 断点续传与显示速度与百分比
rsync  -P  /SRC/a.txt  /DEST/
# 显示统计
rsync  -v        /SRC/a.txt  /DEST/
# 一般有这些就够了
rsync  -r -P -v  /SRC/a.txt  /DEST/

# 你可能需要
## 保留修改时间
rsync  -r -P -v -t    /SRC/a.txt  /DEST/
## 保留可执行权限
rsync  -r -P -v -t -E    /SRC/a.txt  /DEST/
## 保留备份(默认重新命名为~filename)
rsync  -r -P -v -t -E -b    /SRC/a.txt  /DEST/
## 排除匹配的PATTERN文件
rsync  -r -P -v -t -E -b --exclude=PATTERN    /SRC/a.txt  /DEST/

4.3 执行过程相关参数的示例

kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  ./hd.mp4  ~/
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ 
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  --progress  ./hd.mp4  ~/
hd.mp4
    338,678,784 100%  226.96MB/s    0:00:01 (xfr#1, to-chk=0/1)
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ 
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  -v  ./hd.mp4  ~/
hd.mp4

sent 338,761,544 bytes  received 35 bytes  96,789,022.57 bytes/sec
total size is 338,678,784  speedup is 1.00
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ 
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  --stats  ./hd.mp4  ~/

Number of files: 1 (reg: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 1
Total file size: 338,678,784 bytes
Total transferred file size: 338,678,784 bytes
Literal data: 338,678,784 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 338,761,544
Total bytes received: 35

sent 338,761,544 bytes  received 35 bytes  135,504,631.60 bytes/sec
total size is 338,678,784  speedup is 1.00
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ 
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  --progress  --stats  ./hd.mp4  ~/
hd.mp4
    338,678,784 100%  222.42MB/s    0:00:01 (xfr#1, to-chk=0/1)

Number of files: 1 (reg: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 1
Total file size: 338,678,784 bytes
Total transferred file size: 338,678,784 bytes
Literal data: 338,678,784 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 338,761,544
Total bytes received: 35

sent 338,761,544 bytes  received 35 bytes  225,841,052.67 bytes/sec
total size is 338,678,784  speedup is 1.00
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ 
kevin@ChiefRiver-Platform-612d45c5:~/Downloads/HEYZO-2902-FHD$ rsync  --progress  -v  ./hd.mp4  ~/
hd.mp4
    338,678,784 100%  219.70MB/s    0:00:01 (xfr#1, to-chk=0/1)

sent 338,761,544 bytes  received 35 bytes  135,504,631.60 bytes/sec
total size is 338,678,784  speedup is 1.00

4.4 参数之执行过程回显信息差别

以下参数叠加使用会有更多效果

  • -P (等同 --partial --progress)
    显示文件清单、每个文件已复制百分比、每个文件所需剩余时间
envs-for-deploy--mtss/soft/jdk-8u202-linux-x64.tar.gz
    194,042,837 100%   86.03MB/s    0:00:02 (xfr#80, to-chk=1/85)
envs-for-deploy--mtss/soft/node-v16.18.1-linux-x64.tar.xz
     22,494,680 100%   25.45MB/s    0:00:00 (xfr#81, to-chk=0/85)
  • –info=progress2
    显示已复制 总百分比、总所需剩余时间。
    272,902,719 100%   66.75MB/s    0:00:03 (xfr#81, to-chk=0/85) 
  • -v
    显示文件清单及最后的汇总
envs-for-deploy--mtss/soft/jdk-8u202-linux-x64.tar.gz
envs-for-deploy--mtss/soft/node-v16.18.1-linux-x64.tar.xz

sent 208,064 bytes  received 318,229 bytes  80,968.15 bytes/sec
total size is 272,902,719  speedup is 518.54
  • –stats
    显示详细统计信息及最后的汇总。相比于-v少了文件清单,多了详细统计信息
Number of files: 1 (reg: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 1
Total file size: 338,678,784 bytes
Total transferred file size: 338,678,784 bytes
Literal data: 338,678,784 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 338,761,544
Total bytes received: 35

sent 338,761,544 bytes  received 35 bytes  135,504,631.60 bytes/sec
total size is 338,678,784  speedup is 1.00

5 最后

爱你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值