rysnc +inotify

正式安装,官网下载rsync稳定版本,而后进行安装编译。linux

cd  /usr/src ;wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz  web

tar  xzf  rsync-3.0.7.tar.gz  && cd rsync-3.0.7 && ./configure --shell

prefix=/usr/local/rsync  &&make &&make install服务器

安装完毕,配置rsync配置文件,默认/etc/不存在rsyncd.conf配置文件,须要手动建立,配置内容为以下:cat  rsyncd.confapp

uid = nobody
gid = nobody
use chroot = no
max connections = 30
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[shell]
read only = yes
path = /root/shell
comment = shell
auth users = ceshi                     用户非系统用户 
secrets file = /etc/rsync.pas        密码文件名能够随意
hosts allow = 192.168.10.128ssh

启动服务器端RSYNC主进程,/usr/local/rsync/bin/rsync  --daemon ,监听端口TCP 873webapp

设置rsync服务器端同步密钥:ui

vi  /etc/rsync.passpa

ceshi:123123orm

保存完毕,chmod 600 /etc/rsync.pas设置权限为宿主用户读写。     

最后在客户端配置同步密钥和命令,以下设置便可同步。

vi  /etc/rsync.pas  输入服务器端配置的密码(只需密码不需用户名 ):

123123

chmod 600 /etc/rsync.pas      服务端客户端权限必须700或600  不然没法读取密码文件 

保存便可开始同步:执行以下语句  

Rsync -aP --delete ceshi@192.168.0.100::shell /usr/local/webapps   --bwlimit=200  --password-file=/etc/rsync.pas   

*/usr/local/webapps为客户端的目录,@前test是认证的用户名;IP后面俩个冒号shell为rsync服务器端的模块名称。--bwlimit=200限速200K

参数详解

 

Rsync配置参数说明:

[www]   #要同步的模块名

path = /usr/local/webapps  #要同步的目录

comment = www    #这个名名称无所谓,最后模块名一直)

read only = no   # no客户端可上传文件,yes只读

write only = no  # no客户端可下载文件,yes不能下载

list = yes      #是否提供资源列表

auth users =test  #登录系统使用的用户名,没有默认为匿名。

hosts allow = 192.168.0.10,192.168.0.20  #本模块容许经过的IP地址

hosts deny = 192.168.1.4     #禁止主机IP

secrets file=/etc/rsync.pas  #密码文件存放的位置

 

 

 

 

 

-a, ––archive

归档模式,表示以递归方式传输文件,并保持全部文件属性。

––exclude=PATTERN

指定排除一个不须要传输的文件匹配模式

––exclude-from=FILE

从 FILE 中读取排除规则

––include=PATTERN

指定须要传输的文件匹配模式

––delete

删除那些接收端还有而发送端已经不存在的文件(保持2边数据彻底一致,客户端增长数据也会删除)

-P

等价于 ––partial ––progress

-v, ––verbose

详细输出模式

-q, ––quiet

精简输出模式

––rsyncpath=PROGRAM

指定远程服务器上的 rsync 命令所在路径

––password-file=FILE

从 FILE 中读取口令,以免在终端上输入口令,

一般在 cron 中链接 rsync 服务器时使用

7.4.2Rsync基于SSH同步
除了可使用rsync密钥进行同步以外,还有一个比较简单的同步方法就是基于linux ssh来同步。具体方法以下:
rsync -aP --delete root@192.168.0.10:/data/www/webapps /data/www/webapps ,若是想每次同步不输入密码,须要作Linux主机之间免密码登陆。

实时同步

rysnc +inotify

除了可使用rsync密钥进行同步以外,还有一个比较简单的同步方法就是基于linux ssh来同步。具体方法以下:

rsync  -aP  --delete  root@192.168.0.10:/data/www/webapps  /data/www/webapps ,若是想每次同步不输入密码,须要作Linux主机之间免密码登陆。

 Rsync实时同步配置

在企业平常web应用中,某些特殊的数据须要要求保持跟服务器端实时同步,那咱们该如何来配置呢?如何来实现呢?这里能够采用rsync+inotify来实现需求。

Inotify 是一个 Linux特性,它监控文件系统操做,好比读取、写入和建立。Inotify 反应灵敏,用法很是简单,而且比 cron 任务的繁忙轮询高效得多。

Rsync安装完毕后,须要安装inotify文件检查软件。同时为了同步的时候不须要输入密码,这样可使用ssh免密钥方式进行同步。

安装inotify-tools-3.14.tar.gz 软件,tar –xzf  inotify-tools-3.14.tar.gz ;./configure  ;make

;make install 便可。配置auto_inotify.sh同步脚本,内容以下:

#!/bin/sh
src=/root/shell
des=/root/shell
ip=192.168.10.128
inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file
do
for i in $ip
  do
  /usr/local/rsync/bin/rsync -aP --delete $src root@$ip:$des
  done
done

 

在服务器端后台启动该脚本,nohup  sh  auto_inotify.sh  & ,在服务器端目录新建或者删除,客户端都会实时进行相关操做。

相关文章
相关标签/搜索