1。自然环境和专业软件的详细介绍
计算机 *** 作系统:Ubuntu12.04_x64
服务器(消息推送):192.168.18.10
总目标服务器(备份数据):192.168.18.20
rsync:
Rsync是unix系统软件下的数据信息镜像系统备份工具。是快速增量备份的专用工具(远程控制也一样)。适合本地复制,或者和其他SSH(安全传输)和rsync服务器一样。
rsync有以下常见的主要参数:
-v,-verbose显示的信息与整个过程的细节相同。
-a,-archive归档模式,即文件以递归方式传输,保留所有文件特征,相当于-rlptgoD。
-r,-递归对联目录递归求解。
-z,-compress在传输过程中减小备份数据文件的大小。
-l,-链接节省了导电柔性连接。
-H,-hard-links保存硬链接
-delete删除这些DST中SRC中不可用的文件(源服务器删除这些文件,整个目标服务器也删除它们)
-progress显示信息备份数据的全过程,相当于-p。
-port=PORT指定rsync服务项目的端口号。
-exclude=FILE清除一个目录或文件(当清除了几个目录时,可以写入几个-exclude)
-exclude-from=FILE=FILE清除几个目录或文件,要清除的几个目录写入文件
inotify:
Inotify是Linux的一个特性,它监督文件系统软件的实际 *** 作,比如加载、装载和构建。当文件系统软件改变时,inotify将被打开。Inotify给出了专门的工具inotify-tools,它有两个功能,一个是inotifywatch,用于监督文件系统软件改造的恶性事件,另一个是inotifywatch,用于统计分析文件系统软件的浏览频率。这一次,我们使用inotifywait来集成rsync,以完成即时同步。
inotifywait有以下常见的主要参数:
-m,-monitor持续监控恶性事件。
-r,-递归递归监督目录
-q,-quiet只复制已打开的恶性事件。
-e,-event指定监视时间。
-timefmt指定时间格式,在-format模型选择的%T格式中使用。
-format指定输出格式。
%w表示发生恶性事件的目录。
%f表示导致恶性事件的文件。
%e表示生成的恶性事件。
%T应用由-—timefmt定义的时间格式。
Inotify等常见监测恶性事件:
访问文件或目录加载
修改文件或目录更改
属性文件或目录特征改变
移动文件或目录移动
创建文件或目录
删除文件或目录。
2。整体目标服务器安装和供应
# sudo apt-get install rsync #ubuntu系统软件默认设置已安裝 # sudo cp/usr/share/doc/rsync/examples/rsyncd.conf /etc/ # sudo vi /etc/rsyncd.conf # 下列是全局性配备 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/lock/rsyncd #下列是控制模块选择项配备 [home] #控制模块名,在源服务器指定这一姓名 comment = sync rsync/home #叙述信息内容 path = /home/rsync #备份数据目录 use chroot=no #不应用chroot,无需root管理权限 read only = no #设定当地备份数据目录为读写能力管理权限 uid=root gid=root max connections=10 #手机客户端最大连接数 auth users = rsync #指定数据库同步客户 secrets file = /etc/rsyncd.pass #指定数据库同步客户信息文件 hosts allow=192.168.18.0/24 #容许联接的手机客户端 ignore errors = yes #忽视出現I/O不正确 timeout = 600#创建验证文件
# sudo vi /etc/rsyncd.pass rsync:123456 #格式是登录名:登陆密码 # sudo chmod 600 /etc/rsyncd.pass #属关键有管理权限读这一文件,不然会报没管理权限 # sudo /etc/init.d/rsync start #假如起动报以下不正确,则依据提醒开启/etc/default/rsync文件,将RSYNC_ENABLE=false该为RSYNC_ENABLE=true,再重新启动就可以。 * rsync daemon not enabled in/etc/default/rsync, not starting... #,查询是不是起动,有rsync监视端口号表明一切正常: # sudo netstat -antp |grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 29605/rsync博客地址:http://lizhenliang.blog.51cto.com
3。源服务器的安装和设置
# sudo apt-get install rsync inodify-tools #rsync无需配备,由于大家只应用rsync指令,接着建立验证文件 # sudo vi /etc/rsyncd.pass 123456 #只写登陆密码 # sudo chmod 600/etc/rsyncd.pass#此时,基础装备正在进行中。看看消息能不能推送!
# rsync -avzP --password-file=/etc/rsyncd.pass --delete /home/rsync rsync@192.168.18.20::home #home就是总体目标服务器上rsync里边的控制模块名 sending incremental file list rsync/a 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=5/7) sent 354 bytes received 126 bytes 960.00 bytes/sec total size is 0 speedup is 0.00#以上信息内容显示一切正常。接下来是写Shell脚本,用inotifywait实时监控系统的源目录,添加while循环系统识别源目录是否打开,如果有变化,实现rsync同步,记录日志:
# vi inotify_rsync.sh #!/bin/bash SRC='/home/rsync' DST='rsync@192.168.18.20::home' /usr/bin/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w %f %e' -e create,delete,move,modify $SRC|while read files do rsync -avzP --password-file=/etc/rsyncd.pass --delete $SRC $DST echo "$files was rsynced.">> /tmp/rsync.log done4。检测立即是相同的
#首先,复制查询脚本制作执行状态。
# bash -x inotify_rsync.sh SRC=/home/rsync/ #目录末尾一定要加个/,不然会再总体目标服务器再建立个目录 DST=rsync@192.168.18.213::home read files /usr/bin/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f %e' -e create,delete,move,modify,attrib /home/loongtao rsync -avzP --password-file=/etc/rsyncd.pass --delete /home/rsync rsync@@192.168.18.213::home sending incremental file list rsync/ rsync/test.txt 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=2/11) sent 349 bytes received 32 bytes 762.00 bytes/sec total size is 9380 speedup is 24.62 echo '15-04-24 13:33/home/rsync/test.txt CREATE was rsynced.' read files rsync -avzP--password-file=/etc/rsyncd.pass --delete /home/rsync rsync@192.168.18.213::home sending incremental file list sent 310 bytes received 10 bytes 640.00 bytes/sec total size is 9380 speedup is 29.31 echo '15-04-24 13:33/home/rsync/test.txt ATTRIB was rsynced.' read files#你可以看到上面的信息内容,没有出错,说明消息推送已经成功了。
然后,将脚本放入后台程序:
# chmod x inotify_rsync.sh # ./inotify_rsync.sh &#此时,当升级源服务器/home/rsync目录文件时,它将合并到整个目标服务器/home/rsync目录中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)