- 1 在本机同步复制
- 2 远程数据同步,这个才是rsync的真正用武之处,上面的根本就是大材小用,copy就够用了
- 本地数据同步到远程
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
$ rsync -rav dir1 rsync://10.215.20.7/dest1
- 远程数据拉去到本地
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
$ rsync -av rsync://10.10.16.8/dir1 ./
- 常用的参数说明
-
选项 说明 -a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (注意不包括 -H) -r, ––recursive 对子目录以递归模式处理 -l, ––links 保持符号链接文件 -H, ––hard-links 保持硬链接文件 -p, ––perms 保持文件权限 -t, ––times 保持文件时间信息 -g, ––group 保持文件属组信息 -o, ––owner 保持文件属主信息 (super-user only) -D 保持设备文件和特殊文件 (super-user only) -z, ––compress 在传输文件时进行压缩处理 ––exclude=PATTERN 指定排除一个不需要传输的文件匹配模式 ––exclude-from=FILE 从 FILE 中读取排除规则 ––include=PATTERN 指定需要传输的文件匹配模式 ––include-from=FILE 从 FILE 中读取包含规则 ––copy-unsafe-links 拷贝指向SRC路径目录树以外的链接文件 ––safe-links 忽略指向SRC路径目录树以外的链接文件(默认) ––existing 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件 ––ignore-existing 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件 -b, ––backup 当有变化时,对目标目录中的旧版文件进行备份 ––backup-dir=DIR 与 -b 结合使用,将备份的文件存到 DIR 目录中 ––link-dest=DIR 当文件未改变时基于 DIR 创建硬链接文件 ––delete 删除那些接收端还有而发送端已经不存在的文件 ––delete-before 接收者在传输之前进行删除操作 (默认) ––delete-during 接收者在传输过程中进行删除操作 ––delete-after 接收者在传输之后进行删除操作 ––delete-excluded 在接收方同时删除被排除的文件 -e, ––rsh=COMMAND 指定替代 rsh 的 shell 程序 ––ignore-errors 即使出现 I/O 错误也进行删除 ––partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 ––progress 在传输时显示传输过程 -P 等价于 ––partial ––progress ––delay-updates 将正在更新的文件先保存到一个临时目录(默认为 “.~tmp~”),待传输完毕再更新目标文件 -v, ––verbose 详细输出模式 -q, ––quiet 精简输出模式 -h, ––human-readable 输出文件大小使用易读的单位(如,K,M等) -n, ––dry-run 显示哪些文件将被传输 ––list-only 仅仅列出文件而不进行复制 ––rsyncpath=PROGRAM 指定远程服务器上的 rsync 命令所在路径 ––password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令,通常在 cron 中连接 rsync 服务器时使用 -4, ––ipv4 使用 IPv4 -6, ––ipv6 使用 IPv6 ––version 打印版本信息 ––help 显示帮助信息
相似命令有,scp,相比之下,这个rsync有什么特别之处?
镜像同步,不单单是文件本身
同步时,只写了ip,服务器上的sync 配置文件里写了相关权限 ,所以这里不用写密码
注意:
路径是否有最后的 “/” 有不同的含义,有的话,不包含当前路径,没有的话,联通目录本身一起同步过去