首页 > 代码库 > rsync+inotify配置

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=http://www.mamicode.com/data>


本文出自 “繁华落尽” 博客,请务必保留此出处http://chenxujiang.blog.51cto.com/11737025/1852125

rsync+inotify配置