zoukankan      html  css  js  c++  java
  • rsync+inotify 实时同步数据

    环境:centos 6.6

    web服务器:192.168.2.82

    内容发布点:192.168.2.39

    一、web服务器上安装rsync并配置

    1、安装rsync

    yum install rsync -y

    2、开始配置rsync文件

    mkdir /etc/rsyncd(默认没有这个文件,需要手动创建)

    touch /etc/rsyncd/rsyncd.conf

    ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

    vi /etc/rsyncd.conf

    uid = root
    gid = root

    use chroot = no


    #limit access to private LANs
    hosts allow=192.168.2.0/255.255.255.0
    hosts deny=*
    max connections = 5

    pid file = /var/run/rsyncd.pid

    secrets file = /etc/rsyncd/rsyncd.secrets
     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

    # MODULE OPTIONS
    [rsync_test]
    path = /rsync_test
    list=yes
    writeonly = false
    read only = false
    ignore errors
    auth users = sandy
    comment = test rsync

    chmod -R 755 /var/run

    vi /etc/rsyncd/rsyncd.secrets

    sandy:123456

    为了密码的安全性,我们把权限设为600:

    chown root:root /etc/rsyncd/rsyncd.secrets

    chmod 600 /etc/rsyncd/rsyncd.secrets

    启动rsync服务:

    1.以 xinetd 运行 rsync 服务

    CentOS 默认以 xinetd 方式运行 rsync 服务。rsync 的 xinetd 配置文件
    在 /etc/xinetd.d/rsync。要配置以 xinetd 运行的 rsync 服务需要执行如下的命令:

    # chkconfig rsync on
    # service xinetd restart

    管理员可以修改 /etc/xinetd.d/rsync 配置文件以适合您的需要。例如,您可以修改配置行

    server_args = --daemon

    在后面添加 rsync 的服务选项。

    2.独立运行 rsync 服务

    最简单的独立运行 rsync 服务的方法是执行如下的命令:

    # /usr/bin/rsync --daemon

    您可以将上面的命令写入 /etc/rc.local 文件以便在每次启动服务器时运行 rsync 服务。当然,您也可以写一个脚本在开机时自动启动 rysnc 服务。

    启动rsync服务:

    /etc/init.d/xinetd restart

    查看873端口是否起来

    netstat -an | grep 873

    如果看到873端口已经在侦听了,说明rsync服务已经启动

    二、客户端安装rsync,inotify-tools及配置

    1、安装rsync及配置

    yum install rsync -y

    客户端配置rsync,创建密码文件,以后同步加上此文件及不需要填写密码:

    touch /etc/rsync_passwd

    chmod 600 /etc/rsync_passwd

    echo "123456">/etc/rsync_passwd(将服务器用户sandy的账号密码写入密码文件中)

    2、安装inotify-tools(由于centos6.6系统中已经内置inotify了,所以无需再安装inotify,查看/proc/sys/fs/目录下是否有inotify文件夹,如果有即已经安装,如果没有则yum安装下)

    yum install inotify-tools -y

    三、客户端上创建内容发布点文件目录并编写实时同步脚本文件

    mkdir /src

    vi /crontab/rsync.sh

    #!/bin/bash

    /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /src
    |while read files
    do
    /usr/bin/rsync -vzrtopg --delete --progress /src/ sandy@192.168.2.82::rsync_test --password-file=/etc/rsync_passwd
    done

    四、执行脚本文件并验证

    1、后台执行脚本文件

    sh +x /crontab/rsync.sh>/crontab/rsync.log &

    开机启动:

    echo 'sh +x /crontab/rsync.sh>/crontab/rsync.log &'>>/etc/rc.local

    2、验证

    客户端创建文件:

    cd /src

    touch test.txt

    查看服务器端是否自动有了test.txt文件

    cd rsync_test

    ls

  • 相关阅读:
    RAND函数和SRAND函数
    称丢手帕问题
    用GDB调试程序(七)
    用GDB调试程序(六)
    用GDB调试程序(三)
    用GDB调试程序(五)
    用GDB调试程序(二)
    用GDB调试程序(一)
    SOAP 简单对象访问协议
    关于angularJS绑定数据时自动转义html标签
  • 原文地址:https://www.cnblogs.com/luckyjinping/p/5018783.html
Copyright © 2011-2022 走看看