怎么查看服务器安装是否安装rsync +rsync inotify tools

现在的位置:
rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置
前面讲了很多集群的内容,集群间服务器实现数据的同步一直是一个问题,比如一个lvs集群中,如果有上百台RS服务器,当更新Web程序时,如何在这么多台服务器间进行快速的更新,这是一个问题,如果使用手动更新,或者scp等命令,明显是不可取的。因此,今天介绍这样一组工具实现这样的应用,后面也会讲到puppet等工具的使用。
1.1 什么是rsync?
rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。
在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件。SSH情况下,rsync客户端运行程序必须同时在本地和远程机器上安装。
1.2 什么是sersync?
sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:
sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
1.3 什么是inotify?
inotify是Linux核心子系统之一,做为文件系统的附加功能,它可监控文件系统并将异动通知应用程序。本系统的出现取代了旧有Linux核心里,拥有类似功能之dnotify模块。inotify的原始开发者为John McCutchan、罗伯特·拉姆与Amy Griffis。于Linux核心2.6.13发布时(2005年六月十八日),被正式纳入Linux核心。尽管如此,它仍可通过补丁的方式与2.6.12甚至更早期的Linux核心集成。
因此,利用inotify的文件系统更改通知功能,结合rsync和sersync等工具,就能很好的实现当主服务器文件变动后能及时更新到其他服务器。
1.4 单纯使用rsync和使用serync+rsync的区别:
使用rsync+crontab做定时同步时,主服务器端开启rsync守护进程,而镜像服务器是运行rsync客户端,平时一般会利用crontab定时获取rsync服务器上的数据。
但使用rsync+sersync做实时同步时,用于推送文件的服务器运行sersync服务,用于接收文件的服务器则运行rsync守护进程,简单来说就是sersync会利用rsync命令将文件推送到rsync服务器,实际线上使用一般会把sersync作为主服务器,rsync作为镜像服务器,实现数据同步备份,web镜像等功能。
二、安装和使用rsync
2.1 rsync的安装
每个镜像服务器(需要同步的服务器)都需要安装rsync守护进程。
一般发行版都带有rsync,因此我这里直接使用yum安装。当然在很多发行版上默认已经安装了rsync。
[root@web1 ~]# yum install rsync
[root@web1 ~]# rpm -ql rsync
/etc/xinetd.d/rsync
/usr/bin/rsync
/usr/share/doc/rsync-3.0.6
/usr/share/doc/rsync-3.0.6/COPYING
/usr/share/doc/rsync-3.0.6/NEWS
/usr/share/doc/rsync-3.0.6/OLDNEWS
/usr/share/doc/rsync-3.0.6/README
/usr/share/doc/rsync-3.0.6/support
/usr/share/doc/rsync-3.0.6/support/Makefile
/usr/share/doc/rsync-3.0.6/support/atomic-rsync
/usr/share/doc/rsync-3.0.6/support/cvs2includes
/usr/share/doc/rsync-3.0.6/support/deny-rsync
/usr/share/doc/rsync-3.0.6/support/file-attr-restore
/usr/share/doc/rsync-3.0.6/support/files-to-excludes
/usr/share/doc/rsync-3.0.6/support/git-set-file-times
/usr/share/doc/rsync-3.0.6/support/logfilter
/usr/share/doc/rsync-3.0.6/support/lsh
/usr/share/doc/rsync-3.0.6/support/mnt-excl
/usr/share/doc/rsync-3.0.6/support/munge-symlinks
/usr/share/doc/rsync-3.0.6/support/rrsync
/usr/share/doc/rsync-3.0.6/support/rsyncstats
/usr/share/doc/rsync-3.0.6/support/savetransfer.c
/usr/share/doc/rsync-3.0.6/tech_report.tex
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz
rsync是由超级守护进程xinetd来启动的。因此需要启动xinetd服务。
2.2 配置rsync服务器
rsync服务器主要有三个配置文件:rsyncd.conf,rsyncd.secrets和rsyncd.motd,而rsync安装后并没有自动创建相关配置文件,因此我们还需手动创建:
[root@web1 ~]# mkdir /etc/rsyncd  ##创建配置目录
[root@web1 ~]# touch /etc/rsyncd/rsyncd.conf  ##创建主配置文件
[root@web1 ~]# touch /etc/rsyncd/rsyncd.secrets  ##创建用户密码文件
[root@web1 ~]# chmod 600 /etc/rsyncd/rsyncd.secrets ##修改用户密码文件
[root@web1 ~]# touch /etc/rsyncd/rsyncd.motd   ##创建定义服务器信息的文件
编辑主配置文件:
[root@web1 ~]# vi /etc/rsyncd/rsyncd.conf
# 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.204.129  ##监听地址
#uid = nobody
#gid = nobody   uid = root
gid = root
use chroot = yes   ##是否限制在指定目录,为了安装,一般需要启用
read only = no
#limit access to private LANs
hosts allow=192.168.204.0/255.255.255.0   ##允许网段
hosts deny=*
max connections = 5
motd file = /etc/rsyncd/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
##定义一个同步目录
path = /var/www/html
ignore errors
auth users = apache
secrets file = /etc/rsyncd/rsyncd.secrets  ##指定上述账号密码文件
comment = web home
exclude =   data/   ##排除目录
编辑/etc/rsyncd/rsyncd.secrets文件:
[root@web1 ~]# vi /etc/rsyncd/rsyncd.secrets
apache:password123
##注意,这个账号是系统账号,但没有使用系统账号的密码,而是自定义密码
重启使rsync生效:
[root@web1 ~]# /usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf
设置为开机启动:
[root@web1 ~]# echo &/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf& && /etc/rc.d/rc.local
2.3 使用rsync客户端实现数据同步
客户端安装同上,额外只需配置一个密码文件,具体如下:
[root@web2 ~]# mkdir /etc/rsyncd  ##创建配置目录
[root@web2 ~]# echo “passowd123”& /etc/rsyncd/rsyncd.password  ##创建密码文件,密码为服务器端rsyncd.secrets文件中的密码。
[root@web2 ~]# chmod 600 /etc/rsyncd/rsyncd.password 
[root@web2 ~]# rsync -avzP --delete  --password-file=/etc/rsyncd/rsyncd.password apache@web1::webhome /var/www/html/
receiving incremental file list
index.html
          22 100%   21.48kB/s    0:00:00 (xfer#1, to-check=1/3)
newpage.html
          26 100%    0.63kB/s    0:00:00 (xfer#2, to-check=0/3)
sent 100 bytes  received 264 bytes  728.00 bytes/sec
total size is 48  speedup is 0.13
--delete:本地与服务器完全一样,如果本地存在不一样的,则删除,慎用
--password-file:指定密码文件,如果不指定,则需手动输入
-a :参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z :传输时压缩;
-P :传输进度;
-v :传输时的进度等信息
  用双冒号引用主配置文件中的定义资源,也可以使用单引号跟绝对路径
以后同步时,只会同步新增内容。
最后将上述命令加入计划任务定时同步即可。
可能存在的问题:
防火墙端口开发问题:iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
权限问题,需要写权限
【上篇】【下篇】
您可能还会对这些文章感兴趣!
2016年九月
12131415161718
192021222425
2627282930
同分类最新文章
日志:436篇
评论:28条
分类:44个
标签:266个
链接:10个
网站运行:1363天
最后更新:日当前位置:&>&&>&
inotify+rsync配置实例详解
发布时间:编辑:
本文介绍下,在linux中用inotify,rsync实现文件同步的例子,有需要的朋友,参考下吧。
案例描述:
1,后端采用负载均衡集群部署方案,由一个负载调度节点,3个服务节点及一个内容发布节点构成。
2,内容发布节点负责将用户发布的数据生成静态页面,同时将静态页面传输给3个服务节点,而负载调度节点负责将用户请求根据负载算法调度到相应的服务节点上,实现用户访问。
3,用户要求在前端访问到的网页数据始终是最新的。
解决方案:
为了保证用户访问到的数据的一致性和实时性,必须保证3个服务节点上的数据与内容发布节点上的数据始终是一致的,这就需要通过文件同步工具来实现,这里可以采用rsync。同时又要保证数据是实时性的,这就需要,即利用inotify监视内容发布节点文件的变化,如果文件有变动,那么就启动,将文件实时同步到3个服务节点上。
系统环境:
LInux操作系统的内核版本与节点信息&&&&&&&&&&&&&&
节点名称 内核版本 用途 Ip地址 网页数据路径
Web1 2.6.18 服务节点1& 192.168.12.131 /web1/wwwroot
Web2 2.6.18 服务节点2 192.168.12.132 /web2/wwwroot
Web3 2.6.18 服务节点3 192.168.12.133 /web3/wwwroot
server 2.6.18 内容发布节点 192.168.12.134 /web/wwwroot
步骤一、安装rsync与inotify-tools
Inotify-tools是用来监控文件系统变化的工具,所以必须安装在内容发布节点上,服务节点上无需安装。另外需要在web1,web2,web3和server节点上安装rsync。
此案中,内容发布节点充当了rsync客户端的角色,而3个服务节点充当了rsync服务端的角色,整个数据同步的过程其实就是一个从客户端向端发送数据的过程。
步骤二、在3个服务节点上配置rsync
参考配置如下:
Web1节点的rsyncd.conf配置如下:
复制代码 代码示例:
;uid = nobody
;gid = nobody
;use& chroot = no
;max connections = 10
;strict modes = yes
;pid file = /var/run/rsyncd.pid
;lock file = /var/run/rsync.lock
;log file = /var/log/rsyncd.log
;path = /web1/wwwroot/
;comment = web1 file
;ignore errors
;read only = no
;write only = no
;hosts allow = 192.168.12.134
;hosts deny = *
;list = false
;uid = root
;gid = root
;auth users = web1user
;secrets file = /etc/web1.pass
Web2节点和web3节点的配置类似,做相应改动即可。
在配置完3台服务节点的rsync.conf文件后,一次启动rsync守护进程。并将rsync服务加入到自启动文件中。
# echo &/usr/local/bin/rsync --daemon& &&/etc/rc.local
步骤三、配置内容发布节点
配置内容发布节点的主要工作是将生成的静态网页实时同步到集群中3个服务节点上,这个过程可以通过一个来完成。
内容如下:
复制代码 代码示例:
#!/bin/bash
;host1=192.168.12.231
;host2=192.168.12.232
;host3=192.168.12.233
;src=/web/wwwroot/
;dst1=web1
;dst2=web2
;dst3=web3
;user1=web1user
;user2=web2user
;user3=web3user
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y& %H:%M'& --format ' %T& %w%f%e'
-e modify,delete,create,attrib $src | while read files
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user1@$host1::$dst1
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user2@$host2::$dst2
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user3@$host3::$dst3
echo &${files} was rsynced& && /tmp/rsync.log 2&&1
--timefmt& 指定时间的输出格式
--format&& 指定变化文件的详细信息。
特殊情况:
向inotify监控的目录中写入一个很大的文件,当写入这个大文件需要一段时间,inotify会持续不断的输出该文件被更新的信息,这样就会持续不断的触发rsync执行同步操作,占用大量的资源。
针对这种情况,最理想的做法是等待文件写完后再触发rsync同步。可以修改inotify的监控事件,即&-e close_write,delete,create,attrib&.
给脚本加执行权限,并放到后台执行:
#chmod 755 /web/wwwroot/inotifyrsync.sh
#//web/wwwroot/inotifysync.sh &
并将脚本加入系统自启动文件中。
#echo &/web/wwwroot/inotifyrsync.sh& && &&/etc/rc.local
步骤四、测试rsync+inotify实时同步功能。
您可能感兴趣的文章:
与 inotify+rsync配置实例详解 有关的文章
本文标题:
本页链接:
12345678910
12345678910技术交流QQ群:& && && &
现在的位置:
Linux下Rsync+Inotify-tools实现数据实时同步
操作系统:CentOS 5.X
源服务器:192.168.21.129
目标服务器:192.168.21.127,192.168.21.128
目的:把源服务器上/home/目录实时同步到目标服务器的/home/下
具体操作:
第一部分:分别在两台目标服务器<span style="color: #8.21.127,<span style="color: #8.21.128上操作
一、分别在两台在目标服务器安装Rsync服务端
1、关闭SELINUX
vi /etc/selinux/config #编辑防火墙配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存,退出
setenforce 0
2、开启防火墙tcp 873端口(Rsync默认端口)
vi /etc/sysconfig/iptables #编辑防火墙配置文件
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
:wq! #保存,退出
/etc/init.d/iptables restart #最后重启防火墙使配置生效
3、安装Rsync服务端软件
yum install rsync xinetd #安装
vi /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync
disable = no #修改为no
:wq! #保存退出
/etc/init.d/xinetd start #启动(CentOS中是以xinetd来管理Rsync服务的)
4、创建rsyncd.conf配置文件
vi /etc/rsyncd.conf #创建配置文件,添加以下代码
log file = /var/log/rsyncd.log #日志文件位置,启动rsync后自动产生这个文件,无需提前创建
pidfile = /var/run/rsyncd.pid
#pid文件的存放位置
lock file = /var/run/rsync.lock
#支持max connections参数的锁文件
secrets file = /etc/rsync.pass
#用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件
motd file = /etc/rsyncd.Motd
#rsync启动时欢迎信息页面文件位置(文件内容自定义)
[home_] #自定义名称
path = /home// #rsync服务端数据目录路径
comment = home_ #模块名称与[home_]自定义名称相同
uid = root #设置rsync运行权限为root
gid = root #设置rsync运行权限为root
use chroot = no #默认为true,修改为no,增加对目录文件软连接的备份
read only = no
#设置rsync服务端文件为读写权限
list = no #不显示rsync服务端资源列表
max connections = 200 #最大连接数
timeout = 600
#设置超时时间
auth users = home__user #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
hosts allow = 192.168.21.129
#允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
hosts deny = 192.168.21.254 #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
#保存,退出
5、创建用户认证文件
vi /etc/rsync.pass #配置文件,添加以下内容
home__user:123456
#格式,用户名:密码,可以设置多个,每行一个用户名:密码
#保存,退出
6、设置文件权限
chmod 600 /etc/rsyncd.conf
#设置文件所有者读取、写入权限
chmod 600 /etc/rsync.pass
#设置文件所有者读取、写入权限
7、启动rsync
/etc/init.d/xinetd start
service xinetd stop
service xinetd restart #重新启动
第二部分:在源服务器<span style="color: #8.21.129上操作
一、安装Rsync客户端
1、关闭SELINUX
vi /etc/selinux/config #编辑防火墙配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存,退出
setenforce 0 #立即生效
2、开启防火墙tcp 873端口(Rsync默认端口,做为客户端的Rsync可以不用开启873端口)
vi /etc/sysconfig/iptables #编辑防火墙配置文件
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
:wq! #保存,退出
/etc/init.d/iptables restart #最后重启防火墙使配置生效
温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
3、安装Rsync客户端软件
whereis rsync
#查看系统是否已安装rsync,出现下面的提示,说明已经安装
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
yum install
#只安装xinetd即可,CentOS中是以xinetd来管理rsync服务的
yum install rsync xinetd #如果默认没有rsync,运行此命令进行安装rsync和xinetd
vi /etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync
disable = no #修改为
/etc/init.d/xinetd start #启动(CentOS中是以xinetd来管理rsync服务的)
4、创建认证密码文件
vi /etc/passwd.txt
#编辑文件,添加以下内容
123456 #密码
:wq! #保存退出
chmod 600 /etc/passwd.txt #设置文件权限,只设置文件所有者具有读取、写入权限即可
5、测试源服务器192.168.21.129到两台目标服务器192.168.21.127,192.168.21.128之间的数据同步
mkdir /home//ceshi #在源服务器上创建测试文件夹,然后在源服务器运行下面2行命令
rsync -avH --port=873 --progress --delete
home__user@192.168.21.127::home_ --password-file=/etc/passwd.txt
rsync -avH --port=873 --progress --delete
home__user@192.168.21.128::home_ --password-file=/etc/passwd.txt
运行完成后,分别在两台目标服务器192.168.21.127,192.168.21.128上查看,在/home/目录下有ceshi文件夹,说明数据同步成功。
二、安装Inotify-tools工具,实时触发rsync进行同步
1、查看服务器内核是否支持inotify
ll /proc/sys/fs/inotify
#列出文件目录,出现下面的内容,说明服务器内核支持inotify
-rw-r--r-- 1 root root 0 Mar
7 02:17 max_queued_events
-rw-r--r-- 1 root root 0 Mar
7 02:17 max_user_instances
-rw-r--r-- 1 root root 0 Mar
7 02:17 max_user_watches
备注:Linux下支持inotify的内核最小为2.6.13,可以输入命令:uname -a查看内核
CentOS 5.X 内核为2.6.18,默认已经支持inotify
2、安装inotify-tools
yum install make
gcc gcc-c++
#安装编译工具
inotify-tools下载地址:/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
上传inotify-tools-3.14.tar.gz到/usr/local/src目录下
cd /usr/local/src
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14 #进入解压目录
./configure --prefix=/usr/local/inotify
make install
3、设置系统环境变量,添加软连接
echo "PATH=/usr/local/inotify/bin:$PATH" &&/etc/profile.d/inotify.sh
source /etc/profile.d/inotify.sh
#使设置立即生效
echo "/usr/local/inotify/lib" &/etc/ld.so.conf.d/inotify.conf
ln -s /usr/local/inotify/include
/usr/include/inotify
4、修改inotify默认参数(inotify默认内核参数值太小)
查看系统默认参数值
sysctl -a | grep max_queued_events
结果是:fs.inotify.max_queued_events = 16384
sysctl -a | grep max_user_watches
结果是:fs.inotify.max_user_watches = 8192
sysctl -a | grep max_user_instances
结果是:fs.inotify.max_user_instances = 128
修改参数:
sysctl -w fs.inotify.max_queued_events=""
sysctl -w fs.inotify.max_user_watches=""
sysctl -w fs.inotify.max_user_instances="65535"
vi /etc/sysctl.conf #添加以下代码
fs.inotify.max_queued_events=
fs.inotify.max_user_watches=
fs.inotify.max_user_instances=65535
:wq! #保存退出
参数说明:
max_queued_events:
inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确
max_user_watches:
要同步的文件包含多少目录,可以用:find /home/ -type d | wc -l 统计,必须保证max_user_watches值大于统计结果(这里/home/为同步文件目录)
max_user_instances:
每个用户创建inotify实例最大值
温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
5、创建脚本,实时触发rsync进行同步
vi /usr/local/inotify/rsync.sh
#编辑,添加以下代码
======================================
srcdir=/home//
dstdir=home_
excludedir=/usr/local/inotify/exclude.list
rsyncuser=home__user
rsyncpassdir=/etc/passwd.txt
dstip="192.168.21.127 192.168.21.128"
for ip in $dstip
rsync -avH --port=873 --progress --delete
--exclude-from=$excludedir
$srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $srcdir |
while read file
for ip in $dstip
rsync -avH --port=873 --progress --delete
--exclude-from=$excludedir
$srcdir $rsyncuser@$ip::$dstdir --password-file=$rsyncpassdir
${file} was rsynced" && /tmp/rsync.log 2&&1
======================================
chmod +x /usr/local/inotify/rsync.sh
#添加脚本执行权限
脚本参数说明:
srcdir=/home//
#源服务器同步目录
dstdir=home_
#目标服务器rsync同步目录模块名称
excludedir=/usr/local/inotify/exclude.list
#不需要同步的目录,如果有多个,每一行写一个目录,使用相对于同步模块的路径;
#例如:不需要同步/home//目录下的a目录和b目录下面的b1目录,exclude.list文件可以这样写
rsyncuser=home__user
#目标服务器rsync同步用户名
rsyncpassdir=/etc/passwd.txt
#目标服务器rsync同步用户的密码在源服务器的存放路径
dstip="192.168.21.127 192.168.21.128"
#目标服务器ip,多个ip用空格分开
/tmp/rsync.log
#脚本运行日志记录
6、设置脚本开机自动执行
vi /etc/rc.d/rc.local
#编辑,在最后添加一行
sh /usr/local/inotify/rsync.sh & #设置开机自动在后台运行脚本
7、测试inotify实时触发rsync同步脚本是否正常运行
在源服务器<span style="color: #8.21.129上创建文件inotify_rsync_ceshi
mkdir /home//inotify_rsync_ceshi
重新启动源服务器:<span style="color: #8.21.129
等系统启动之后,查看两台目标服务器<span style="color: #8.21.127,192.168.21.128的/home/下是否有inotify_rsync_ceshi文件夹
然后再在源服务器<span style="color: #8.21.129创建文件夹inotify_rsync_ceshi_new
mkdir /home//inotify_rsync_ceshi_new
继续查看两台目标服务器192.168.21.127,192.168.21.128的/home/下是否有inotify_rsync_ceshi_new文件夹
如果以上测试都通过,说明inotify实时触发rsync同步脚本运行正常。
至此,Linux下Rsync+Inotify-tools实现数据实时同步完成。
扩展阅读:
============================================
inotify参数
-m 是保持一直监听
-r 是递归查看目录
-q 是打印出事件
-e create,move,delete,modify,attrib 是指 “监听 创建 移动 删除 写入 权限” 事件
============================================
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, --checksum 打开校验开关,强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
-stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=formAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息
============================================
&&&&&>> 本文链接:>> 订阅本站:>> 转载请注明来源: >>
&&系统运维技术交流QQ群:①& ②& ③&
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!
本分类最新文章
日志总数:319篇
评论总数:1030条
分类总数:70个
标签总数:465个
友情链接:34个
网站运行:1887天
最后更新:日
欢迎PR值≥3的IT类技术博客与本站友情链接(申请前请先做好本站链接)
Copyright&
系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接

我要回帖

更多关于 rsync inotify原理图 的文章

 

随机推荐