Rsync+inotify 数据同步

Rsync工具的使用

--------

rsync 端口873

rsync常用的命令选项:

-a:归档模式,相当于递归、保留权限等多个选项的组合

-v:显示同步过程详细信息

-z:传输过程中启用压缩

-A:保留文件的ACL属性信息

-n:测试同步过程,不做实际修改

--delete:删除目标文件夹内多余的文档

---------------------------

本地同步(命令用法类似cp)

rsync -a --delete /date/www/  /data/bak_www/

远程SSH同步(命令用法类似scp)

rsync -a --delete /data/www  [email protected]:/data/bak_www/

————————————————————————————————————————————————————————————————————————

Rsync+Rsync

创建rsync配置文件rsyncd.conf

vim  /etc/rsyncd.conf

[tools]                                         //定义共享名

path =/data/www                                 //rsync服务端数据目录路径

comment = Rsync Share Test                      //同步资源注释

read only = yes                                 //只读

dont compress =*.gz *.bz2 *.tgz *.zip           //同步时不再压缩的文档类型

auth users = zhangsan                    //执行数据同步的用户名(多个用户用,英文逗号隔开)

secrets file =/etc/rsync_user            //指定账号文件的路径

timeout = 600                   //设置超时时间

hosts allow = 192.168.1.119     //允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

hosts deny = 192.168.1.118      //禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

log file = /var/log/rsync.log   //日志文件位置,启动rsync后自动产生这个文件,无需提前创建

motd file = /etc/rsync.Motd     //rsync启动时欢迎信息页面文件位置(文件内容自定义)

----------------------------

创建rsync账号文件rsync_user

vim /etc/rsync_user

zhangsan:123456

//每行一个用户名, 用户名:密码(注意权限)

---------------------------

chmod 600 /etc/rsync_user

客户端

------

查看到服务端提供的资源(后面两个::)

rsync  192.168.1.100::

使用zhangsan账户远程同步(需要输入密码)

rsync -av --delete [email protected]::tools /data/bak

使用zhangsan账户非交互式同步(不需要输入密码)

rsync -av --delete --password-file=/etc/rsync_password [email protected]::tools /data/bak_www/

预先把密码存放在/etc/rsync_password,这里存放位置,可自由安排。

chmod 600 /etc/rsync_password      (权限)

————————————————————————————————————————————————————————————————————————

inotify+Rsync

ssh-keygen

创建并部署SSH公钥,实现免密码验证

ssh-copy-id [email protected]

拷贝到192.168.1.101上面

---------------------------------------------------------

下载inotify

编译安装

wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

tar xf inotify-tools-3.14.tar.gz ;cd inotify-tools-3.14

./configure --prefix=/usr/local/inotify && make && make install

创建个脚本,加入后台运行.

vim /usr/local/inotify-3.14/inotify.sh

#!/bin/bash

#para

host01=192.168.1.100  #inotify-slave的ip地址

src=/data/apache-tomcat-9.0.0.M21/webapps        #本地监控的目录

dst=tools         #inotify-slave的rsync服务的模块名

user=rsync_backup      #inotify-slave的rsync服务的虚拟用户

rsync_passfile=/etc/rsync.password   #本地调用rsync服务的密码文件

inotify_home=/usr/local/inotify-3.14    #inotify的安装目录

#judge

if [ ! -e "$src" ] \

|| [ ! -e "${rsync_passfile}" ] \

|| [ ! -e "${inotify_home}/bin/inotifywait" ] \

|| [ ! -e "/usr/bin/rsync" ];

then

echo "Check File and Folder"

exit 9

fi

${inotify_home}/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f‘ -e close_write,delete,create,attrib $src \

| while read file

do

#  rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src [email protected]$host01::$dst >/dev/null 2>&1

cd $src && rsync -aruz -R --delete ./   [email protected]$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1

#cd /data/apache-tomcat-9.0.0.M21/webapps && rsync -aruz -R --delete ./ [email protected]::tools  --password-file=/etc/rsync.password

done

exit 0

-------------------

###########inotify报错error while loading shared libraries: libinotifytools.so.0: cannot open shared object fil########

系统找不到该库

find . -name libinotifytools.so.0

把查找的文件路追加到 /etc/ld.so.conf

------------------------------------

时间: 2024-10-09 21:51:41

Rsync+inotify 数据同步的相关文章

centos6 rsync+inotify 数据同步

一 前戏#检测rsync是否已安装rpm -qa rsync#如未按装,执行yum安装yum install -y rsync#新建用户和目录并授权useradd -M -s /sbin/nologin  rsyncmkdir /bakcupchown -R rsync.rsync /bakcup/ 二 服务端配置#打开配置文件,填入以下内容vi /etc/rsyncd.conf===================================#rsyncd.conf____________

rsync + inotify数据同步

rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可以解决对实时性要求不是很高的数据备份需求.如果实时性高的情况下,就会体现出他的不足,虽然可以利用任务计划来触发同步,但还是有一定的时间差,并且 rsync 在同步数据的时候,要遍历整个目录树后进行比对,文件数量达到一定量级的情况下,这是很低效的做法.所以就有了今天的 rsync + inofity . inotify 是一种强大的.细粒度的.异步文件系统时间监控机制,Linux 内核从 2.6.13 起,加入了对inot

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存

rsync+inotify实现同步数据

1.rsync man一下sync,就会发现:sync-flush file system buffers,它是一个把缓冲区中的数据同步到文件系统中的一个命令:而rsync其实就是remote rsync,它是一个远程同步工具,兼具cp和scp的功能,rsync命令的使用几乎和scp是一样一样的.rsync是通过超级守护进程xinetd进行触发同步的. 1)优点:与cp和scp相比来说,rsync更快,更安全,支持增量备份.rsync在数据同步的过程中,不像cp一样全部都拷贝,而是先去比对特征码

rsync+inotify 数据实时同步备份

一.rsync rsync - a fast, versatile, remote (and local) file-copying tool. rsync synopsis: rsync 支持三种传输模式: local    本地 remote shell   (ssh, rsh) rsync daemon rsync连接远程主机进行同步或备份时有两种途径:使用远程shell程序(如ssh或rsh)进行连接,或使用TCP直接连接rsync daemon.    当源路径或目的路径的主机名后面包

CentOS5.8 x86_64下配置rsync+inotify即时同步文件

rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样就可以解决同步数据的实时性问题.rsync+inotify我在工作中会经常用到,大家部署这种时请注意以下方面: 一.rsync服务器的uid和gid请将nobody:nobody改为www:www,因为是考虑到我们的Nginx服务器是由www:www运行的,而其对应目录很多时候有写日志或其它相关写文

rsync+inotify实时同步环境部署记录

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的,并且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应

rsync+inotify实时同步案例

rsync+inotify实时同步案例 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的.而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用