一、背景vim
1) 一个做为服务器端:VM3(IP: 3.9.8.151)安全
2) 一个做为客户端:VM2(IP: 3.9.8.157)服务器
3) 服务器端和客户端网络可以互相ping通网络
4) 服务器端和客户端都已安装 rsync并发
要求:将VM3的/root/backup/目录下的全部文件 复制到 VM2 的/root/test/目录下。tcp
二、操做测试
1) 用ping命令检测服务器端和客户端的网络互通性ui
VM3 ping VM2 成功spa
VM2 ping VM3 成功.net
VM2 和 VM3 网络互通
2) 服务端VM3新建并修改rsync配置文件
# vim /etc/rsyncd.conf
Uid = nobody
Gid = nobody
Use chroot = no
Max connections = 4
Pid file = /var/run/rsyncd.pid
Lock file = /var/run/rsyncd.lock
Log file = /var/log/rsyncd.log
[cms]
Path = /root/backup
Read only = true
List = false
Auth users = root
Secrets file = /etc/rsyncd.secrets
该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name = value的参数定义。每一个模块其实就对应须要备份的一个目录树。
全局参数
Uid: 该选项指定当该模块传输文件时守护进程应该具备的uid,配合gid选项使用能够肯定哪些能够访问怎么样的文件权限,默认值是"nobody"。
Gid: 该选项指定当该模块传输文件时守护进程应该具备的gid。默认值为"nobody"。
Use chroot: 若是"use chroot"指定为true,那么rsync在传输文件之前首先chroot到path参数所指定的目录下。这样作的缘由是实现额外的安全防御,可是缺点是须要以roots权限,而且不能备份指向外部的符号链接所指向的目录文件。默认状况下chroot值为true。
Max connection: 指定该模块的最大并发链接数量以保护服务器,超过限制的链接请求将被告知随后再试。默认值是0,也就是没有限制。
pid file:指定rsync的pid文件。
Lock file: 指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file: 指定rsync的日志文件,而不将日志发送给syslog。
模块参数
Cms: 模块名,名字能够随意取,以后的客户端rsync命令将调用这个名字。
path: 指定该模块的供备份的目录树路径,该参数是必须指定的.
Read only: 该选项设定是否容许客户上载文件。若是为true那么任何上载请求都会失败,若是为false而且服务器目录读写权限容许那么上载是容许的。默认值为true。
List: 该选项设定当客户请求能够使用的模块列表时,该模块是否应该被列出。若是设置该选项为false,能够建立隐藏的模块。默认值是true。
Auth users:该选项指定由空格或逗号分隔的用户名列表,只有这些用户才容许链接该模块。这里的用户和系统用户没有任何关系。若是"auth users"被设置,那么客户端发出对该模块的链接请求之后会被rsync请求challenged进行验证身份这里使用的challenge/response认证协议。用户的名和密码以明文方式存放在"secrets file"选项指定的文件中。默认状况下无需密码就能够链接模块(也就是匿名方式)。
Secrets file: 该选项指定一个包含定义用户名:密码对的文件。只有在"auth users"被定义时,该文件才有做用。文件每行包含一个username:passwd对。通常来讲密码最好不要超过8个字符。没有默认的secures file名,须要限式指定一个。(例如:/etc/rsyncd.secrets)
以上参照:http://blog.csdn.net/xujingzhong0077/article/details/51993514
注意:设置后要测试配置的目录是否存在,如要确认/var/run/目录,/var/log/目录,/root/backup/目录。/etc/rsyncd.secrets将会在下一步配置
3) 服务端VM3新建并修改rsync配置文件
# vim /etc/rsyncd.secrets
Root:redhat
以 用户名:密码 的格式。这个是服务器端的认证用户名密码。
4) 服务端VM3 修改/etc/rsyncd.secrets权限,只能是root用户可读写
# chmod 600 /etc/rsyncd.secrets
5) 服务端VM3 以daemon方式启动rsync
# rsync –daemon
6) 服务端VM3检查端口,以及服务
# ps –ef | grep rsync
检查服务是否以daemon方式启动,若不是,kill掉进程,从新以daemon方式启动
# netstat –ntlp
检查服务启动后,是否有监听873端口,端口873是rsync的默认端口。
# service iptables stop
关闭防火墙
或者
# vim /etc/sysconfig/iptables
添加
-A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
容许873端口经过防火墙
# service iptables restart
重启防火墙
查看/etc/rsyncd.secrets 文件权限是否是只用root用户可读写
以上配置及检查完毕,则服务端就能够了,等待客户端链接,拷贝文件。
7) 客户端VM2 配置密码文件
# vim /etc/rsync.pass
Redhat
8) 客户端VM2 密码文件/etc/rsync.pass,修改权限,只能是root用户可读写
# chmod 600 /etc/rsync.pass
9) 客户端VM2 用命令链接服务端拷贝文件
# rsync –arvz –P root@3.9.8.151::cms /root/test/ --password-file=/etc/rsync.pass