`

基于rsync和inotify的服务器文件同步

 
阅读更多

  基于rsync和inotify的服务器文件同步

使用场景:

      使用于应用服务器中的集群,需要同时部署多个服务时。使用了同步,只需修改服务端的文件,它会自动同步到客户端的机器上,从而保证了代码的一致性。

安装需要软件:

      inotify-tools-3.13.tar.gzrsync-3.1.1.tar.gz

客户安装步骤:

  1. 检查系统是否安装rsync,如果安装则不需要重新安装。如没有安装请进行第二步。
  2. 安装rsync。
    tar zxvf  rsync-3.1.1.tar.gz
    cd rsync-3.1.1
    ./configure ;
    make ;
    make install 
  3. 创建配置文件
    mkdir /etc/rsyncd/
    vim /etc/rsyncd/rsyncd.conf
  4.  修改配置文件
    # Section 1: Global settings
    port = 873
    uid = root     #用户
    gid = root     #用户所在组
    use chroot = yes
    read only = no
    max connections = 7
    pid file = /var/run/rsyncd.pid
    log file = /var/log/rsyncd.log      #日志输入
    hosts allow = 192.168.1.1          #服务器端的地址
    transfer logging = yes
    log format = %t %a %m %f %b
    syslog facility = local3
    timeout = 300
    
    # Section 2: Directory to be synced
    [mp3]   #模块名称,服务器端会根据这个名称进行查找
    path = /data/mp3     #同步文件的目录
    list = false
    ignore errors = yes
    auth users = root
    secrets file = /etc/rsyncd/rsyncd.pass   #用户名、密码所在文件 
  5. 创建密码文件/etc/rsyncd/rsyncd.pass
    root:123456   #用户名、密码
  6.  修改rsyncd.pass的权限
    # chmod 600  /etc/rsyncd/rsyncd.pass #注意:一定要是600的权限,其它权限不好用
  7.  启动服务,进行验证
    #启动服务
    # /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
    查看状态,是否成功
    # netstat -nutlp | grep :873
     

服务器安装配置:

  1. 检查是否安装rsync软件,如果没有安装进行安装步骤参考客户端,但不需要配置。
  2. 安装inotify软件
    tar xzvf inotify-tools-3.13.tar.gz
    cd inotify-tools-3.13
    ./configure  --prefix=/usr/local/inotify
    make
    make install
  3. 创建配置文件并修改权限
    #创建密码文件
    # vim /etc/rsyncd/rsyncd.pass
    #此文件中只需写入密码即可
    123456
    #修改权限,请不要使用其它权限
    chown 600  /etc/rsyncd/rsyncd.pass
  4.  建立自动同步的脚本,使用inotifywait监控目录,当监控目录改变的时候,调用rsync同步改变的文件
    # vim /var/tmp/auto_sync.sh
    #!/bin/bash
    #
    DESTHOST=192.168.1.107           #客户端地址
    DESTHOSTDIR=/data/mp3/           #客户端目录 
    SRCDIR=/data/mp3/                #服务端目录
    
    inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e close_write,modify,delete,create,attrib $SRCDIR |  while read DATE TIME DIR FILE; do
          
    FILECHANGE=${DIR}${FILE}
          echo "At ${TIME} on ${DATE}, file $FILECHANGE will be backed up via rsync" >> /var/log/mp3sync.log      
           rsync -avz --password-file=/etc/rsyncd/rsyncd.pass $SRCDIR root@${DESTHOST}::mp3 &>/dev/null && \
           echo "At ${TIME} on ${DATE}, file $FILECHANGE was backed up via rsync" >> /var/log/mp3sync.log
    done
  5.  修改此文件权限
    #修改权限 
    #chmod u+x /var/tmp/auto_sync.sh
    #启动服务
    # /var/tmp/auto_sync.sh &
    #开机自动运行
    # echo '/var/tmp/auto_sync.sh &' >> /etc/rc.local 
  6. 验证是否成功,在服务器对应目录下新增一个文件,去客户端目录下查看是否有此文件。



 

  • 大小: 15.1 KB
  • 大小: 3.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics