您的位置:首页 > 其它

rsync+inotify配置

2016-09-12 21:31 155 查看
rsync+inotify配置

下载rsync源码:http://rsync.samba.org

安装rsync

#tar zxvf rsync-3.1.2.tar.gz
#cd rsync-3.1.2
#./configure
#make && make install


rsync有四种应用模式

shell模式(本地模式)

远程shell模式(利用ssh)

查询模式(列表模式)

服务器模式

#rsync SRC DST


例:

本地模式:

#rsync -av /root /tmp   复制/root目录及其文件到/tmp下
#rsync -av /root/ /tmp  复制/root目录下的文件到/tmp下
-a --archive 归档模式
-v --verbose 输出详细模式信息


远程模式:


#rsync -av /root 192.168.0.99:/tmp


列表模式:


#rsync -a 192.168.0.99:/tmp 查看远程主机上的/tmp目录下的内容


rsync服务器端配置文件/etc/rsyncd.conf(需手动创建)包含全局参数和模块参数

uid = nobody                      #当该模块传输文件时守护进程的用户ID,默认nobody
gid = nobody                      #当该模块传输文件时守护进程的用户组ID,默认nobody
use chroot = no
max connections = 10              #指定模块最大并发连接数,默认为0,没有限制
strict modes = yes                #是否检查口令文件权限,yes时密码文件必须是root用户权限
pid file = /var/run/rsyncd.pid    #rsync守护进程的PID文件路径
lock file = /var/lock/rsyncd.lock #指定支持max connections的锁文件,默认是/var/run/rsyncd.conf
log file = /var/log/rsyncd.log    #rsync日志文件路径

[data]                            #定义模块名称
path = /data                      #需要备份的文件
comment = test rsync              #说明
ignore errors                     #忽略一些无关的I/O错误
read only = no                    #yes为只读,no表示可以上传文件
write only = no                   #yes表示不能下载,no表示可以下载
hosts allow = *                   #允许连接的主机
hosts deny =192.168.0.103         #禁止连接的主机
list = false                      #设定用户请求可用的模块列表时,该模块是否被列出,默认ture(列出)
uid = root                        #
gid = root                        #
auth user =backup                 #定义可连接模块的用户名,多个用逗号隔开。与系统用户无关
secrets file = /etc/rsync/server.pass #存储auth user定义的用户密码文件路径。格式“用户:密码”


server.pass文件

backup:123456


修改文件权限

#chmod 600 /etc/rsync/server.pass


客户端也要保存该文件但只保存密码

/etc/rsync/server.pass

123456


在服务器端开启服务

#/usr/local/bin/rsync --daemon


在客户端执行

#/usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "debug*" backup@192.168.0.99::data /data --password-file=/etc/rsync/server.pass


在-vzrtopg中

v –verbose 详细输出模式

z –compress 在传输对文对文件进行压缩处理

r –recursi 对子目录以递归模式处理

t –times 保持文件时间信息

o –owner 保持文件属主信息

p –perms 保持文件权限

g –group 保持文件属组信息

–delete 指定以rsync服务器端为基准进行数据镜像同步

–progress 显示同步过程

–exclude 用于排除不需要传输的文件类型

backup@192.168.0.99::data 表示使用backup用户对192.168.0.99的data模块备份

/data 备份文件保存的目录

–password-file=/etc/rsync/server.pass 客户机上存放密码的文件

inotify可以监控文件系统中的添加、删除、修改、移动等操作,触发rsync来备份

下载inotify-tools:http://inotify-tools.sourceforge.net/

安装inotify-tools

#tar zxvf inotify-tools-3.14.tar.gz
#cd inotify-tools-3.14
#./configure
#make && make install


在/usr/local/bin下有两个命令inotifywait和inotifywatch

inotifywait用于等待文件或文件集上的一个特定事件,可以监控任何文件和目录,也可递归监控整个目录树

inotifywatch用于收集被监控的文件系统统计数据,包括inotify事件发生多少次等信息

inotifywait的常用参数

-m –monitor 表示保持事件始终监听

-r –recursive 表示递归查询目录

-q –quiet 表示打印出监控事件

-c –event 指定要监控的事件(modify,delete,create,attrib等)

编写脚本来监控文件变化并完成同步

inotifyrsync.sh脚本

#!/bin/bash
#
HOST1=192.168.0.96

SRC=/data

DST1=data

user1=backup

/usr/loc
4000
al/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e'
-e modify,delete,create,attrib $SRC \
| while read file
do
/usr/local/bin/rsync -vzrtopg --delete --progress --password-file=/etc/r
sync/server.pass $SRC $user1@$HOST1::$DST1 &> /dev/null
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: