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

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

文章目录

  • rsync主要参数解释与常用用法
    • 1 公共参数
      • 1.1 执行方式
      • 1.2 执行过程
      • 1.3 其他
    • 2 用于源路径的参数
    • 3 用于目标路径的参数
    • 4 一般用法
      • 4.1 HELP
      • 4.2 本地示例(参数用法与到远程server一样)
      • 4.3 执行过程相关参数的区别
    • 5 最后

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

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

# 通过ssh:
rsync  -r -P -v -t -E -b --exclude=PATTERN    -e "ssh -p ${SSHD_PORT}"  [email protected]:/SRC/a.txt  /DEST/
# 通过rsync:
rsync  -r -P -v -t -E -b --exclude=PATTERN    rsync://[email protected]:${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                    [email protected]:/DEST/
rsync         192.168.1.11:/SRC/a.txt  /DEST/
rsync    [email protected]:/SRC/a.txt  /DEST/
### ssh非标端口
rsync    -e "ssh -p ${SSHD_PORT}"  [email protected]:/SRC/a.txt  /DEST/
## 通过rsync
rsync    /SRC/a.txt                                             192.168.1.11::sss/DEST/
rsync    /SRC/a.txt                                rsync://[email protected]::sss/DEST/
rsync                 192.168.1.11::sss/SRC/a.txt  /DEST/
rsync    rsync://[email protected]::sss/SRC/a.txt  /DEST/
### rsync非标端口
rsync    rsync://[email protected]:${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

5 最后

爱你

你可能感兴趣的:(IT,ssh,linux,服务器)