差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
zh:用途和案例:如何使用rsync同步远程服务器上的文件 [2017/03/03 02:16]
liuxl
zh:用途和案例:如何使用rsync同步远程服务器上的文件 [2017/12/12 03:05] (当前版本)
行 1: 行 1:
-<​note>​rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,通过ssh方式来传输文件,本文将介绍如何使用rsync同步astercc的录音文件夹monitor。</​note>​+<​note>​rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息,通过ssh方式来传输文件,本文将介绍如何使用rsync同步asterCC的录音文件夹monitor,测试rsync服务器IP地址为192.168.1.90。</​note>​ 
 + 
 +===== 一、服务器端配置 =====
  
 ==== 安装 ==== ==== 安装 ====
行 15: 行 17:
 <​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 # 同上设置服务器端传输文件时要哪个组来执行。
  
行 30: 行 34:
  
 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 # 客户端最多连接数。
行 37: 行 41:
 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格式的文件来记录下载和上载操作在自己单独的日志中。
  
行 51: 行 55:
 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,参考改成如下图:
行 60: 行 64:
  
 <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>​
zh/用途和案例/如何使用rsync同步远程服务器上的文件.1488507404.txt.gz · 最后更改: 2017/12/12 03:11 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki