一、说明
自接解Linux服务器后,rsync这个东西就一直若隐若现,但也没人要求帮安装配置什么的所以也就没有研究。
但近来要推弱口令改造,发现挺多就是rsync空口令,搞不懂这是什么东西就很不舒服,所以抽空来研究一下。
二、安装
操作系统:CentOS 7
# 客户端和服务端程序都在rsync一个包里,客户机和服务机都装这个包就完事了 yum install rsync -y
三、使用
下面介绍rsync的三种使用模式:本机内复制、机器间通过ssh复制、机器间通过daemon复制。
3.1 本机内复制
本机内复制,rsync就类似于cp命令,只是参数和cp有区别。
3.2 机器间通过ssh复制
其实除了ssh还可以是rsh等,但一是不太熟二是这些东西终将被ssh取代就不管了。
机器间通过ssh复制,rsync就类似于scp命令,可从远程机复制到本机也可以从远程机复制到本机,只是参数和scp有区别。
由于传输借用的是ssh,所以一方面要明确这种模式是不需要启动rsync服务的,另一方面要明确其认证机制和两台机器间的ssh认证机器是一致的(即可以用密码也可用公钥免密等等)。
3.3 机器间通过daemon复制
配置/etc/rsyncd.conf:
cat >> /etc/rsyncd.conf << EOF # 没在模块名下的是全局配置。模块配置的优先级高于全局配置。 # 增加名称为test的模块 [test] # 模块根目录 path = /tmp/test # 模块认证用户名。该用户只是rsync的和系统账号没关系。 # 如果没有下边这两个配置项,即为rsync空口令情况 auth users = myuser # 模块认证用户名对应密码。格式为明文"username:password" secrets file = /etc/rsyncd.passwd # 模块ip白名单 # hosts allow = 192.168.220.129 192.168.220.130 # 模块ip黑名单 # hosts deny = 192.168.220.129 192.168.220.130 # 禁止自动列出所有模块 # list = no EOF
配置/etc/rsyncd.passwd(其实文件名随意取决于你在/etc/rsyncd.conf中怎么配的。但格式则必须为"username:password"):
cat > /etc/rsyncd.passwd << EOF myuser:mypass EOF
启动rsyncd服务:
# 默认监听系统tcp 873端口
systemctl restart rsyncd
命令通过使用IP后接两个冒号(::)区分机器间通过ssh复制模式;两个冒号后接的是模块名。