rsync实现文件同步

rsync,即remote synchronize,从名字上看就知道它是一款实现远程同步功能的软件。
1、安装
       可以从官网http://rsync.samba.org/下载源码安装
  tar xvf  rsync-xxx.tar.gz
  cd rsync-xxx
  ./configure --prefix=/usr  ;make ;make install
       软件包安装
      apt-get  install  rsync  注:在debian、ubuntu 等在线安装方法;
      yum install rsync    注:Fedora、Redhat 等在线安装方法;
      rpm -ivh rsync       注:Fedora、Redhat 等rpm包安装方法;

      需要注意的是必须在服务器A和B上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。

      这样在web服务器A上运行rsync守护进程,     在  B上定时运行客户程序来备份web服务器A上需要备份的内容。

2、配置:
  rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)

  服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。

  具体步骤如下:

  #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

  下一就是我们修改rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的时候了。

  设定/etc/rsyncd.conf

  rsyncd.conf是rsync服务器主要配置文件。我们先来个简单的示例,后面在详细说明各项作用。

  比如我们要备份服务器上的/home和/opt,在/home中我想把easylife和samba目录排除在外;

  # Distributed under the terms of the GNU General Public License v2
  # Minimal configuration file for rsync daemon
  # See rsync(1) and rsyncd.conf(5) man pages for help

  # This line is required by the /etc/init.d/rsyncd script
  pid file = /var/run/rsyncd.pid  
  port = 873
  address = 192.168.1.171 
  #uid = nobody
  #gid = nobody   
  uid = root  
  gid = root 

  use chroot = yes 
  read only = yes

  #limit access to private LANs
  hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0 
  hosts deny=*

  max connections = 5
  motd file = /etc/rsyncd.motd

  #This will give you a separate log file
  #log file = /var/log/rsync.log

  #This will log every file transferred - up to 85,000+ per user, per sync
  #transfer logging = yes

  log format = %t %a %m %f %b
  syslog facility = local3
  timeout = 300

  [rhel4home]  
  path = /home   
  list=yes
  ignore errors
  auth users = root
  secrets file = /etc/rsyncd.secrets 
  comment = This is RHEL 4 data 
  exclude = easylife/  samba/    

  [rhel4opt]
  path = /opt
  list=no
  ignore errors
  comment = This is RHEL 4 opt
  auth users = easylife
  secrets file = /etc/rsyncd/rsyncd.secrets

  注:关于auth users是必须在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,root

  设定密码文件

  密码文件格式很简单,rsyncd.secrets的内容格式为:

  用户名:密码

  我们在例子中rsyncd.secrets的内容如下类似的;在文档中说,有些系统不支持长密码,自己尝试着设置一下吧。

  easylife:keer
  root:mike

  chown root.root rsyncd.secrets  #修改属主
  chmod 600 rsyncd.secrets     #修改权限

  注:1、将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!            出于安全目的,文件的属性必需是只有属主可读。
    2、这里的密码值得注意,为了安全你不能把系统用户的密码写在这里。比如你的系统用户easylife密码是000000,为了安全你可以让rsync中的easylife为keer。这和samba的用户认证的密码原理是差不多的。

  设定rsyncd.motd 文件;

  它是定义rysnc服务器信息的,也就是用户登录信息。比如让用户知道这个服务器是谁提供的等;类似ftp服务器登录时,我们所看到的 linuxsir.org ftp ……。 当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;我在这里写了一个 rsyncd.motd的内容为:

  ++++++++++++++++++++++++++++++++++++++++++++++
  Welcome to use the mike.org.cn rsync services!
           2002------2009
  ++++++++++++++++++++++++++++++++++++++++++++++

 

3、服务器端启动
usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
可能需要root权限运行.
/etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置.
也可以在/etc/init.d/rc.local里加入让系统自动启动等.
客户端同步
rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 如:
rsync -avzP nemo@192.168.10.1::nemo /backup
说明:
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。


4、防火墙配置:
  Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。

  #iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
  #iptables -L  查看一下防火墙是不是打开了 873端口
    rsync默认端口是873

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值