参数非常多,可以实现非常复杂的任务,但一般你只要记住这一两行就行了:
# 通过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/
-n, --dry-run 试运行,不产生实际改变
--list-only 仅列出文件,不执行拷贝
--progress 显示传输过程(速度、百分比)
-v, --verbose 显示传输汇总信息
--stats 显示详细传输信息及汇总信息,即包含`-v, --verbose`显示的信息
-q, --quiet 静默
-P 等于 --partial --progress
-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 转换文件名为指定字符集
-d, --dirs 不递归目录(不拷贝目录)
-r, --recursive 递归目录拷贝
-R, --relative 使用相对路径名
-l, --links 拷贝软链接为软链接
-L, --copy-links 拷贝软链接指向的文件到目标路径
--exclude=PATTERN 排除匹配的PATTERN文件
--noatime 不修改原文件atime时间
--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 保留修改时间
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文件
# 简单
## 本地
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/
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
爱你