Linux rsync 命令 - 远程数据同步工具
介绍
rsync(英文全拼:remote synchronize)是 Linux 系统中的一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。需要注意的是,rsync 可以在本地主机和远程主机之间,或者在两个本地目录之间同步文件,但不支持两台远程主机之间的同步。
rsync 使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
语法:
rsync [OPTION]... SRC [SRC]... DEST
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
rsync [OPTION]... [USER@]HOST:SRC [DEST]
rsync [OPTION]... [USER@]HOST::SRC [DEST]
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
选项:
-v
,--verbose
:详细模式输出。-q
,--quiet
:精简输出模式。-c
,--checksum
:打开校验开关,强制对文件传输进行校验。-a
,--archive
:归档模式,表示以递归方式传输文件,并保持所有文件属性。-r
,--recursive
:对子目录以递归模式处理。-R
,--relative
:使用相对路径信息。-b
,--backup
:创建备份,也就是对 于目的已经存在有同样的文件名时,将老的文件重新命名为 ~filename。可以使用--suffix
选项来指定不同的备份文件前缀。--backup-dir
:将备份文件(如 ~filename)存放在在目录下。-suffix=SUFFIX
:定义备份文件前缀。-u
,--update
:仅仅进行更新,也就是跳过所有已经存在于 DST,并且文件时间晚于要备份的文件,不覆盖更新的文件。-l
,--links
:保留软链结。-L
,--copy-links
:想对待常规文件一样处理软链结。--copy-unsafe-links
:仅仅拷贝指向 SRC 路径目录树以外的链结。--safe-links
:忽略指向 SRC 路径目录树以外的链结。-H
,--hard-links
:保留硬链结。-p
,--perms
:保持文件权限。-o
,--owner
:保持文件属主信息。-g
,--group
:保持文件属组信息。-D
,--devices
:保持设备文件信息。-t
,--times
:保持文件时间信息。-S
,--sparse
:对稀疏文件进行特殊处理以节省 DST 的空间。-n
,--dry-run
:现实哪些文件将被传输。-w
,--whole-file
:拷贝文件,不进行增量检测。-x
,--one-file-system
:不要跨越文件系统边界。-B
,--block-size=SIZE
:检验算法使用的块尺寸,默认是 700 字节。-e
,--rsh=command
:指定使用rsh、ssh方式进行数据同步。--rsync-path=PATH
:指定远程服务器上的rsync命令所在路径信息。-C
,--cvs-exclude
:使用和 CVS 一样的方法自动忽略文件,用来排除那些不希望传输的文件。--existing
:仅仅更新那些已经存在于 DST 的文件,而不备份那些新创建的文件。--delete
:删除那些 DST 中 SRC 没有的文件。--delete-excluded
:同样删除接收端那些被该选项指定排除的文件。--delete-after
:传输结束以后再删除。--ignore-errors
:及时出现 IO 错误也进行删除。--max-delete=NUM
:最多删除 NUM 个文件。--partial
:保留那些因故没有完全传输的文件,以是加快随后的再次传输。--force
:强制删除目录,即使不为空。--numeric-ids
:不将数字的用户和组 ID 匹配为用户名和组名。--timeout=time
:IP 超时时间,单位为秒。-I
,--ignore-times
:不跳过那些有同样的时间和长度的文件。--size-only
:当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间。--modify-window=NUM
:决定文件是否时间相同时使用的时间戳窗口,默认为 0。- -T --temp-dir=DIR:在 DIR 中创建临时文件。
--compare-dest=DIR
:同样比较 DIR 中的文件来决定是否需要备份。-P
:等同于--partial
。--progress
:显示备份过程。-z
,--compress
:对备份的文件在传输时进行压缩处理。--exclude=PATTERN
:指定排除不需要传输的文件模式。--include=PATTERN
:指定不排除而需要传输的文件模式。--exclude-from=FILE
:排除 FILE 中指定模式的文件。--include-from=FILE
:不排除 FILE 指定模式匹配的文件。--version
:打印版本信息。--address
:绑定到特定的地址。--config=FILE
:指定其他的配置文件,不使用默认的 rsyncd.conf 文件。--port=PORT
:指定其他的 rsync 服务端口。--blocking-io
:对远程 shell 使用阻塞 I/O。--stats
:给出某些文件的传输状态。--progress
:在传输时显示传输过程。--log-format=formAT
:指定日志文件格式。--password-file=FILE
:从 FILE 中得到密码。--bwlimit=KBPS
:限制 I/O 带宽,单位为 KBytes per second。-h
,--help
:显示帮助信息。
示例
关联两个本地的目录,保持文件同步:
rsync -r /Dir1 /Dir2
列出本地指定目录内的文件列表:
rsync /Dir1
将本地目录(/web_root)与远程目录(192.168.1.10:/web_root)相关联,保持文件同步:
rsync -r /web_root 192.168.1.10:/web_root
将远程目录(192.168.1.10:/web_root)与本地目录(/web_root)相关联,保持文件同步:
rsync -r 192.168.1.10:/web_root /web_root