加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux中的rsync简单应用及rsync+inotify实时应用

发布时间:2016-10-23 09:03:13 所属栏目:Linux 来源:网络整理
导读:本文系统Centos6.0 Server:(Centos) 192.168.182.130 Client:(lv2) 192.168.182.129 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来

在Server端(三台)配置如上;

uid=root  #该选项指定当该模块传输文件时守护进程应该具有的uid;默认值是"nobody",
gid=root  ##该选项指定当该模块传输文件时守护进程应该具有的gid;默认值是”nobody”。
use chroot=no   #不使用chroot
max connections=0   #设置最大连接数,默认为0,即无限制。你可以随意设置,10、20都可以
strict mode=yes   #设置是否检查口令文件的权限
pid file=/var/run/rsyncd.pid  #指定rysnc进程的pid文件位置
lock file=/var/lock/rsync.lock  #指定支持max connections的锁文件
log file=/var/log/rsyncd.log   #指定 rsync日志输出路径
[lansggtest]                     #模块名,可使用任意名称
path=/root/test/                 #同步源目录路径
comment=lansgg test         #模块描述
ignore errors          #出现I/O错误时可忽略。
read only=no            #是否只读,设置为no时客户端可上传文件。
write only=no           #设置为no 时客户端可下载文件。
hosts allow=192.168.182.129        #允许访问主机
hosts deny=*                      #拒绝访问的主机,*表示所有主机。
list=false                  #设置客户端请求时是否列出该模块,false为隐藏。
auth users=lansgg            #设置连接时使用的用户,即密码文件里面定义的用户名。如果没有这行,则表明是匿名
secrets file=/etc/rsyncd.pass     #指定密码文件位置

下面是接着在Client端安装inotify-tools

[root@Centos ~]# yum install inotify-tools -y

rpm -ql inotify-tools

/usr/bin/inotifywait

/usr/bin/inotifywatch

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

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

mkdir /root/backup

vim /etc/rsyncd.pass

lansgg123

编写实时检测同步脚本;

vi  dataup.sh
#!/bin/bash
server1=192.168.182.130
server2=192.168.182.131
server3=192.168.182.132
src=/root/backup
dstmode=mode1
user=lansgg
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src| while read files
do
rsync -vzrtopg --delete --progress  --password-file=/etc/rsyncd.pass  $src $user@$server1::$dstmode
rsync -vzrtopg --delete --progress  --password-file=/etc/rsyncd.pass  $src $user@$server2::$dstmode
rsync -vzrtopg --delete --progress  --password-file=/etc/rsyncd.pass  $src $user@$server3::$dstmode
echo "$files was rsynced" >> /tmp/rsync.log 2>&1
done

inotifywait的相关参数:

-m 即 –monitor ,表示始终保持事件监听状态;

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

-q 即 –quiet ,打印出监控事件

--timefmt,指定时间的输出格式

--format,指定变化文件的详细信息

sh inotify.sh &

echo “sh inotify.sh &” >> /etc/rc.local

现在可以在client;创建、删除文件进行测试;

Client执行:

[root@node1 ~]# ./dataup.sh &
[1] 10461
[root@node1 ~]# tail -f /tmp/rsync.log

本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读