详解linux同步工具rsync---参数说明和实例演示

概述

续一下前面讲的rsync基础内容,今天主要介绍一下rsync的相关参数和用一些实例做一下演示。


参数说明

下面是rsync常见的一些选项说明

详解linux同步工具rsync---参数说明和实例演示

详解linux同步工具rsync---参数说明和实例演示

rsync的选项非常多,能够实现非常具有弹性的功能,以上选项仅仅只是很小一部分常用的选项

虽然选项非常多,但最常用的选项组合是"avz",即压缩和显示部分信息,并以归档模式传输。

详解linux同步工具rsync---参数说明和实例演示


实例演示

以下是几个本地同步示例和通过远程shell实现的同步示例。

1、将/etc/fstab拷贝到/tmp目录下。

# rsync /etc/fstab /tmp

详解linux同步工具rsync---参数说明和实例演示

2、将/etc/cron.d目录拷贝到/tmp下。

# rsync -r /etc/cron.d /tmp

详解linux同步工具rsync---参数说明和实例演示

该命令会在目标主机上创建/tmp/cron.d目录,并将/etc/cron.d/中的文件放入到/tmp/cron.d/目录中,也就是说默认情况下,是不会在目录路径下创建上层目录/etc的。

3、将/etc/cron.d目录拷贝到/tmp下,但要求在/tmp下也生成etc子目录。

# rsync -R -r /etc/cron.d /tmp

详解linux同步工具rsync---参数说明和实例演示

其中"-R"选项表示使用相对路径,此相对路径是以目标目录为根的。

4、指定ssh连接参数,如端口、连接的用户、ssh选项等。

[root@nwppdb tmp]# rsync -e "ssh -p 22 -o StrictHostKeyChecking=no" /etc/fstab 39.108.76.234:/tmp

详解linux同步工具rsync---参数说明和实例演示

可见直接指定ssh参数是生效的。

5、"--existing"和"--ignore-existing"

"--existing"是只更新目标端已存在的文件

"--ignore-existing"是更新目标端不存在的文件

"--existing"和"--ignore-existing"结合使用时,有个特殊功效,当它们结合"--delete"使用的时候,文件不会传输,但会删除receiver端额外多出的文件。

准备测试环境

cd /tmp
mkdir a b
touch a/{1..4}.txt
touch b/a.log

详解linux同步工具rsync---参数说明和实例演示

[root@nwppdb tmp]# rsync -nrv --delete a/ b/
sending incremental file list
deleting a.log
1.txt
2.txt
3.txt
4.txt
sent 80 bytes received 24 bytes 208.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
[root@nwppdb tmp]# rsync -nrv --existing --ignore-existing --delete a/ b/
sending incremental file list
deleting a.log
sent 68 bytes received 12 bytes 160.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)

详解linux同步工具rsync---参数说明和实例演示

实际上,"--existing"和"--ingore-existing"是传输规则,只会影响receiver要求让sender传输的文件列表,在receiver决定哪些文件需要传输之前的过程,是这两个选项无法掌控的,所以各种规则、"--delete"等操作都不会被这两个选项影响。

6、"--remove-source-files"删除源端文件。

使用该选项后,源端已经更新成功的文件都会被删除,源端所有未传输或未传输成功的文件都不会被移除。未传输成功的原因有多种,如exclude排除了,"quick check"未选项该文件,传输中断等等。

总之,显示在"rsync -v"被传输列表中的文件都会被移除。如下:

详解linux同步工具rsync---参数说明和实例演示

rsync -r -v --remove-source-files /tmp/a/oswbb /tmp/a/audit /tmp

详解linux同步工具rsync---参数说明和实例演示

详解linux同步工具rsync---参数说明和实例演示

详解linux同步工具rsync---参数说明和实例演示

上述显示出来的文件在源端全部被删除。


篇幅有限,关于rsync的一些参数就介绍到这了,如果大家对rsync感兴趣的话建议多去做练习,毕竟参数还是蛮多的。

后面会分享更多devops和DBA方面的干货,感兴趣的朋友可以关注一下~

详解linux同步工具rsync---参数说明和实例演示

相关推荐