yum install -y rsync xinetd
mkdir rsyncd # 创建文件夹用于存放配置文件集中管理。
touch /etc/rsyncd.conf # 创建rsyncd.conf这是rsync服务器的配置文件。
touch /etc/rsyncd/rsyncd.secrets # 创建rsyncd.secrets这是用户密码文件。
chmod 600 /etc/rsyncd/rsyncd.secrets # 将rsyncd.secrets这个密码文件的文件属性设为root拥有且权限要设为600否则无法备份成功。
touch /etc/rsyncd/rsyncd.motd # 定义rysnc服务器信息的,比如让用户知道这个服务器是谁提供的等。
#port = 873 # 指定运行端口默认是873也可以自己指定,不设置即为默认可用#号注释掉。 uid = root # 服务器端传输文件时要哪个用户来执行默认是nobody,但nobody可能遇到权限问题有些文件从服务器上拉不下来本文用户采用root。 gid = root # 同上设置服务器端传输文件时要哪个组来执行。 use chroot = no # 是否使用chroot,好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限,另外对符号链接文件将会排除在外。 read only = yes # 只读模式不让客户端上传文件到服务器上,还有一个 write only选项。 hosts allow=192.168.1.0/24 # 允许主机,可以指定单个IP也可以指定整个网段能提高安全性,多个地址格式要用空格隔开。 #hosts deny=* # 指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义,默认是没有hosts deny定义,可用#号注释掉。 max connections = 5 # 客户端最多连接数。 pid file = /var/run/rsyncd.pid # 告诉进程写到/var/run/rsyncd.pid文件中。 secrets file = /etc/rsyncd/rsyncd.secrets # 指定密码文件路径。 log file = /var/log/rsyncd.log # 开启rsync服务器的日志。 lock file = /tmp/rsync.lock # 指定支持max connections参数的锁文件。 #motd file = /etc/rsyncd/rsyncd.motd # 指定定义服务器信息文件路径,当用户登录时会看到这个信息,非必须可用#注释掉。 transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。 log format = %t %a %m %f %b # 通过该选项用户在使用transfer logging可以自己定制日志文件的字段,其格式是一个包含格式定义符的字符串,%t当前时间、%a远程IP地址 、%m模块名 、%f文件名、%b实际传输的字节数,详细设置可自行研究 。 syslog facility = local3 # 指定rsync发送日志消息给syslog时的消息级别,常见的消息级别是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, local0, local1, local2, local3,local4, local5, local6、local7等默认值是daemon,具体可自行研究。 timeout = 300 # 通过该选项可以覆盖客户指定的IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户端。超时单位为秒钟0表示没有超时定义这也是默认值。 [monitor] # 模块它为我们提供了一个链接的名字,在本模块中链接到了/var/spool/asterisk/monitor目录要用[name] 形式。 path = /var/spool/asterisk/monitor # 指定文件目录所在位置这是必须指定的。 list=no # 意思是把rsync服务器上提供同步数据的目录在服务器上模块是否显示列出来默认是yes ,如果你不想列出来就设置为no。 ignore errors # 忽略IO错误。 auth users = test # 认证用户。 comment = Get monitor # 注释信息可以自己定义。 #exclude = data/ cache/ # 排除的意思把monitor目录下的data和cache排除在外,目录之间有空格分开,没有可用#号注释掉。
disable设置为no,flags设置为IPv4,server设置为rsync路径可使用whereis rsync查看,然后service xinetd restart使上述设定生效。
设定密码文件格式很简单,rsyncd.secrets的内容格式为:用户名:密码格式,如下示例:
test:astercc
/usr/bin/rsync --daemon
echo "astercc" > /root/rsyncd.secrets chmod 600 /root/rsyncd.secrets
rsync -avzP test@192.168.1.90::monitor /var/spool/asterisk/monitor --password-file=/root/rsyncd.secrets
rsync -avzP test@192.168.1.90::monitor /var/spool/asterisk/monitor --password-file=/root/rsyncd.secrets
-a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD -z 传输时压缩。 -P 传输进度。 -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档。 --delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致,本例只进行录音文件备份所以不需要这个选项。 --password-file=/password/path/file 来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是密码文件权限600。