Centos6.5下的rsync+inotify远程实时文件同步服务搭建

以下为本人的安装过程


一、服务器端的安装

1.系统环境

    服务端:centos6.5出厂环境(系统安装时为默认设置),IP:192.168.10.185

    客户端:远程登录终端xshell5或securecrt(具体安装和使用方法,请自行查询),

            IP:192.168.10.186


2.安装Rsync

    通过终端(此处是xshell)登录系统192.168.10.185

    rpm -qa|grep rsync*  //查看当前是否已安装此服务,若有并感觉版本低的话,可以执行

    rpm -e  rsync* //卸载该软件

    

    安装方式一:

    执行yum -y install rsync

    rpm -qa|grep rsync*   //执行此语句查看已安装软件的信息

    rsync.x86_64 0:3.0.6-12.el6

    安装方式二:

    到rsync官网下载源码包: http://rsync.samba.org/ 包名:rsync-3.1.1.tar.gz

    yum -y install lrzsz    //在命令行输入rz:上传刚刚下载的源码包到服务端

    tar zxf rsync-3.1.1.tar.gz

    cd rsync-3.1.1

    ./configure --prefix=/app

    make

    make install

    启动文件位置:/app/bin/rsync


3.创建rsync 配置文件(默认是没有的)

在/etc/下分别创建 

rsyncd.conf(服务配置文件)

rsyncd.passwd(存放客户端登录rsync服务的账号和密码)

rsyncd.motd(登录服务时的欢迎或说明信息,自由指定,可选)

##########################################################################################

vim /etc/rsyncd.conf  //创建服务配置文件

uid = root

gid = root

port = 873        //指定访问的端口,默认是873,也可自己指定

hosts allow = 客户端IP地址    //允许访问的客户端IP

#hosts deny = 

user chroot = yes

#max connections = 

#timeout =

[backup]

path = /bak  //注意,此目录如果没有,不要忘记创建哦!

comment = rsync files

ignore erros

read only = no

list = yes

auth usres = rsync  //同步验证时用的账号,若没有则是匿名同步,client同步时没有用户名也能同步。

secrets file = /etc/rsync.passwd //认证文件存放的地方

#########################################################################

vim /etc/rsync.passwd    //创建认证文件

rsync:rsync2015  //必须是这种格式,rsync账号为服务配置文件中的auth users,它俩一致就行,密码自定。

chmod 600 /etc/rsyncd.passwd   //更改文件权限为所有者只读

chown root.root /etc/rsync.passwd  //修改文件属性


4.防火墙设置(此部分根据实际情况而定)

(1)centos 6下的防火墙端口开放

iptables -A INPUT  -p tcp --dport 873  -j ACCEPT  //服务器本地可以访问,可用来先测试

iptables -I INPUT  -p tcp --dport 873  -j ACCEPT  //客户端可以访问

(2)centos7下的防火墙端口开放

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone= public --query-port=80/tcp

删除

firewall-cmd --zone= public --remove-port=80/tcp --permanent




5.启动rsync服务

   /usr/bin/rsync --daemon 

注意将服务添加到启动服务文件中,使其随系统启动而启动,方法:

echo '/usr/bin/rsync --daemon' >>/etc/rc.local


6.查看服务是否启动

[root@localhost ~]# lsof -i :873

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rsync   28055 root    3u  IPv4  81353      0t0  TCP *:rsync (LISTEN)

rsync   28055 root    5u  IPv6  81354      0t0  TCP *:rsync (LISTEN)

此情况为服务已开启


二、客户端的安装

    和服务端安装一样,执行yum -y install rsync

    创建认证密码文件:vim /etc/secret.passwd(此项可选,路径随便,用法请见第三大部分2中的蓝色部分)

      安装inotify-tools-3.14.tar监控文件变化工具

      tar zxf inotify-tools-3.14.tar

      cd inotify-tools-3.14

      ./configure --prefix=/app/inotify/bin/inotifywait

      make  &&   make install

wKiom1l6zCzCxA9hAACRqZttIbw690.png

三、实例(本实验服务端IP:192.168.10.185,客户端IP:192.168.10.186)

    1.登录客户端,把服务器上的/bak文件夹中的内容备份到客户端的/imagefile:

      /app/bin/rsync -rvlHpogDtS --delete  --progress \  [email protected]::bak  /imagefile  

    2.登录客户端,把客户端/imagefile文件夹中的内容备份到服务器/bak中:

      /app/bin/rsync -rvlHpogDtS --delete  --progress  /imagefile  [email protected]::backup  --password-file=/etc/secret.passwd

(可以自动提供密码验证)

chmod 600 /etc/rsyncd.passwd   //更改文件权限为所有者只读

chown root.root /etc/rsyncd.passwd  //修改文件属性

* 客户端的password-file文件secret.passwd里只写对应服务端的“密码”


vim  rsync+inotify.sh

#!/bin/bash

#首次运行此脚本,先执行上述命令语句相当于手动把现有的文件同步

/usr/bin/rsync   -rvlHpogDtS --delete  --progress  /imagefile [email protected]::backup  --password-file=/etc/rsyncd.passwd



#下述命令语句为监视到文件或目录有变化时执行同步操作

src=/imagefile

/app/inotify/bin/inotifywait -rmq -e create,modify,move,delete,attrib $src|while read event

do

/usr/bin/rsync   -rvlHpogDtS --delete  --progress  /imagefile  [email protected]::backup  --password-file=/etc/rsyncd.passwd

done


   *    --delete 视情况谨慎使用!加上--delete选项则保持两边文件一致,

    不加--delete则目标文件目录只"接收"源文件目录的文件而不随着源文件目录文件删除而删除

  * 客户端的password-file文件secret.passwd里只写对应服务端的“密码”

  *执行inotify+rsync.sh脚本,nohup /bin/bash /app/inotify+rsync.sh >/tmp/rsyncd.log &

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章