rsync+inotify配置

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/local/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

欢迎关注我的公众号

在这里插入图片描述

原文链接:http://www.chenxujiang.club/article/21

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值