这是本文档旧的修订版!


rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,通过ssh方式来传输文件,本文将介绍如何使用rsync同步astercc的录音文件夹monitor。

安装

  • asterCC系统基于CentOS6,文件同步环境需要rsync与xinetd的支持,xinetd用于把rsync client的同步请求转給 rsyncd,安装方法如下:

yum install -y rsync xinetd

配置

  • rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息),这些文件默认不存在需要创建它们,操作如下:

mkdir rsyncd # 创建文件夹用于存放配置文件集中管理。

touch /etc/rsyncd.conf  # 创建rsyncd.conf这是rsync服务器的配置文件。

touch /etc/rsyncd.secrets  # 创建rsyncd.secrets这是用户密码文件。

chmod 600 /etc/rsyncd/rsyncd.secrets  # 将rsyncd.secrets这个密码文件的文件属性设为root拥有且权限要设为600否则无法备份成功。

touch /etc/rsyncd.motd # 定义rysnc服务器信息的,比如让用户知道这个服务器是谁提供的等。

  • rsyncd.conf是rsync服务器主要配置文件。本文我们提供了一个配置文件实例,如下:

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排除在外,目录之间有空格分开。

  • 设定/etc/xinetd.d/rsync,参考改成如下图:

disable设置为no,flags设置为IPv4,server设置为rsync路径可使用whereis rsync查看。

zh/用途和案例/如何使用rsync同步远程服务器上的文件.1488507060.txt.gz · 最后更改: (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki