| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 |
| zh:用途和案例:如何使用rsync同步远程服务器上的文件 [2017/03/03 02:16] – liuxl | zh:用途和案例:如何使用rsync同步远程服务器上的文件 [2017/03/06 04:00] (当前版本) – liuxl |
|---|
| <note>rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,通过ssh方式来传输文件,本文将介绍如何使用rsync同步astercc的录音文件夹monitor。</note> | <note>rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,通过ssh方式来传输文件,本文将介绍如何使用rsync同步asterCC的录音文件夹monitor,测试rsync服务器IP地址为192.168.1.90。</note> |
| | |
| | ===== 一、服务器端配置 ===== |
| |
| ==== 安装 ==== | ==== 安装 ==== |
| <code>touch /etc/rsyncd.conf # 创建rsyncd.conf这是rsync服务器的配置文件。</code> | <code>touch /etc/rsyncd.conf # 创建rsyncd.conf这是rsync服务器的配置文件。</code> |
| |
| <code>touch /etc/rsyncd.secrets # 创建rsyncd.secrets这是用户密码文件。</code> | <code>touch /etc/rsyncd/rsyncd.secrets # 创建rsyncd.secrets这是用户密码文件。</code> |
| |
| <code>chmod 600 /etc/rsyncd/rsyncd.secrets # 将rsyncd.secrets这个密码文件的文件属性设为root拥有且权限要设为600否则无法备份成功。</code> | <code>chmod 600 /etc/rsyncd/rsyncd.secrets # 将rsyncd.secrets这个密码文件的文件属性设为root拥有且权限要设为600否则无法备份成功。</code> |
| |
| <code>touch /etc/rsyncd.motd # 定义rysnc服务器信息的,比如让用户知道这个服务器是谁提供的等。</code> | <code>touch /etc/rsyncd/rsyncd.motd # 定义rysnc服务器信息的,比如让用户知道这个服务器是谁提供的等。</code> |
| |
| *rsyncd.conf是rsync服务器主要配置文件。本文我们提供了一个配置文件实例,如下: | *rsyncd.conf是rsync服务器主要配置文件。本文我们提供了一个配置文件实例,如下: |
| |
| <code>uid = root # 服务器端传输文件时要哪个用户来执行默认是nobody,但nobody可能遇到权限问题有些文件从服务器上拉不下来本文用户采用root。 | <code> |
| | #port = 873 # 指定运行端口默认是873也可以自己指定,不设置即为默认可用#号注释掉。 |
| | uid = root # 服务器端传输文件时要哪个用户来执行默认是nobody,但nobody可能遇到权限问题有些文件从服务器上拉不下来本文用户采用root。 |
| gid = root # 同上设置服务器端传输文件时要哪个组来执行。 | gid = root # 同上设置服务器端传输文件时要哪个组来执行。 |
| |
| |
| hosts allow=192.168.1.0/24 # 允许主机,可以指定单个IP也可以指定整个网段能提高安全性,多个地址格式要用空格隔开。 | hosts allow=192.168.1.0/24 # 允许主机,可以指定单个IP也可以指定整个网段能提高安全性,多个地址格式要用空格隔开。 |
| #hosts deny=* # 指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义,默认是没有hosts deny定义。 | #hosts deny=* # 指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义,默认是没有hosts deny定义,可用#号注释掉。 |
| |
| max connections = 5 # 客户端最多连接数。 | max connections = 5 # 客户端最多连接数。 |
| log file = /var/log/rsyncd.log # 开启rsync服务器的日志。 | log file = /var/log/rsyncd.log # 开启rsync服务器的日志。 |
| |
| #lock file = /tmp/rsync.lock # 指定支持max connections参数的锁文件。 | lock file = /tmp/rsync.lock # 指定支持max connections参数的锁文件。 |
| #motd file = /etc/rsyncd/rsyncd.motd # 指定定义服务器信息文件路径,当用户登录时会看到这个信息。 | #motd file = /etc/rsyncd/rsyncd.motd # 指定定义服务器信息文件路径,当用户登录时会看到这个信息,非必须可用#注释掉。 |
| transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。 | transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。 |
| |
| auth users = test # 认证用户。 | auth users = test # 认证用户。 |
| comment = Get monitor # 注释信息可以自己定义。 | comment = Get monitor # 注释信息可以自己定义。 |
| #exclude = data/ cache/ # 排除的意思把monitor目录下的data和cache排除在外,目录之间有空格分开。</code> | #exclude = data/ cache/ # 排除的意思把monitor目录下的data和cache排除在外,目录之间有空格分开,没有可用#号注释掉。</code> |
| |
| *设定/etc/xinetd.d/rsync,参考改成如下图: | *设定/etc/xinetd.d/rsync,参考改成如下图: |
| |
| <note tip>注意rsync默认端口为873或配置中设置为其它端口,都需要设置iptables防火墙允许该端口通过。</note> | <note tip>注意rsync默认端口为873或配置中设置为其它端口,都需要设置iptables防火墙允许该端口通过。</note> |
| | |
| | *设置rsyncd.secrets服务器密码文件。 |
| | |
| | 设定密码文件格式很简单,rsyncd.secrets的内容格式为:用户名:密码格式,如下示例: |
| | |
| | <code>test:astercc</code> |
| | |
| | *设置rsyncd.motd 服务器公告文件,其定义了服务器发送给用户登录信息。它并不是必须的可以用#号注掉,如果需要可自行研究设置。 |
| | |
| | ==== 启动rsync守护进程 ==== |
| | |
| | <code>/usr/bin/rsync --daemon</code> |
| | |
| | ===== 二、客户机端配置 ===== |
| | |
| | ==== 客户端创建密码验证文件 ==== |
| | |
| | *客户端创建密码验证文件rsyncd.secrets,这样设置的好处是指定密码不用再手动输入密码验证,方便在crontab里设置定时同步。 |
| | |
| | <code>echo "astercc" > /root/rsyncd.secrets |
| | chmod 600 /root/rsyncd.secrets</code> |
| | |
| | ==== 客户端同步远程文件 ==== |
| | |
| | *测试获取远程服务器可同步的文件资料信息。 |
| | |
| | <code>rsync -avzP test@192.168.1.90::monitor /var/spool/asterisk/monitor --password-file=/root/rsyncd.secrets</code> |
| | |
| | *同步远程服务器共享的的文件资料信息,本例为同步asterCC的录音文件夹/var/spool/asterisk/monitor。 |
| | |
| | <code>rsync -avzP test@192.168.1.90::monitor /var/spool/asterisk/monitor --password-file=/root/rsyncd.secrets</code> |
| | |
| | <note tip>可以将上面的命令设置于crontab中用于定时文件同步。</note> |
| | |
| | <code>-a 以archive模式操作、复制目录、符号连接 相当于-rlptgoD |
| | -z 传输时压缩。 |
| | -P 传输进度。 |
| | -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档。 |
| | --delete 是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致,本例只进行录音文件备份所以不需要这个选项。 |
| | --password-file=/password/path/file 来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是密码文件权限600。</code> |