rsync命令技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync命令技巧相关的知识,希望对你有一定的参考价值。
参考技术A rsync 的常用参数如下:--partial 当有部分文件传输完成,再次传输的时候,会保留已经完成的部分;
--progress 打印文件传输的进度
-P 该参数与 --partial --progress 相同, 表示打印文件传输进度,而对于重传发生的时候,会自动保留已经成功传输的部分
-v 表示 同步的时候,显示详细信息
-a 等同于 -rlptgoD , 但是没有 -A (保留acl ), -H (保留硬链接), -X (保留 extended attributes),因为acl,extended attributes 需要目标文件系统支持才可能实现保留
-r : 递归到目录中
-l : 保留软链接
-p : 保留文件的权限
-t : 保留文件的修改时间
-g : 保留所属组
-o : 保留 所属者
-D : 与 --devices --specials 相同,表示保留 设备文件以及特殊文件;
所以常用的参数为: rsync -avP
我们知道,rsync 默认采用873 端口来进行通信,当有client连接进来的时候,会创建一个新的socket, 从而建立连接;这样可能面临被攻击的风险,比如黑客成功和rsync建立了新的socket连接(873端口).
所以,我们可能面临这样的需求: 在server端"不创建新的socket连接",但是依然要实现数据的传输; rsync是支持这种特性的;
没有 socket 连接不能实现网络通信,而又不能创建新的socket连接,那么要实现网络通信就只能使用 :已经处于listen状态的socket来进行通信;rsync的 -e 参数就是用来支持这个特定的:
当指定 -e 参数后,比如 rsync -e "ssh -l ssh_id -p PORT " rsync_user@REMOTE:/PATH/TO/COPY ./ , 这个命令的执行过程如下:
因为-e 指定了远程shell, 所以 rsync 会利用ssh 方式连接到目标服务器,ssh的用户是 ssh_id , 端口是 PORT, 成功连接后,会spawn 一个单用户的rsync 进程,从而保证了当前的rsync传输数据的安全性,因为没有其他用户可以访问这个进程 . 如果不指定ssh的用户,那么默认的 rsync_user 用户被用作ssh的用户;
linux高级技巧:rsync同步
上个帖子已经展示了同步一个主机的方法。这次我们再加入一个要同步的主机。方法上并无二质。
1.首先显示我们的控制台:
上次是192.168.2.103同步192.168.2.102的内容。这个我们让192.168.2.104的节点同步192.168.2.102的内容。
在192.168.2.104上先安装rsync和xinetd服务:
在xinetd的配置文件里启动rsync服务:
改动rsync的配置文件:
启动xinetd服务(为了启动rsync服务):
然后我们切换到主服务控制台,拷贝一份配置文件:
改动配置文件的内容与第二个节点匹配:
然后我们创建同步文件夹,进入文件夹后创建了5个文件作为測试用:
我们在主控制节点上做一次总体的同步:
然后我们在192.168.2.104上面就看到了同步过来的五个文件:
并且之前192.168.2.103的httpd服务公布的内容也是同步192.168.2.102的:
2.小结
至此我们对于rsync+sersync的解说先告一段落,关于rsync的用途也十分的广泛,要可以灵活的进行运用。对于大批量server的运维一定会达到事半功倍的效果。
以上是关于rsync命令技巧的主要内容,如果未能解决你的问题,请参考以下文章