当前位置:首页 » 《关注互联网》 » 正文

rsync+inotify介绍_Ryougi_Shiki_uio的博客

27 人参与  2021年08月17日 14:03  分类 : 《关注互联网》  评论

点击全文阅读


目录

  • rsync远程同步
  • 搭建rsync
  • 搭建inotify

rsync远程同步

rsync远程同步是一款主要为快速增量备份的工具;可以用于本地的复制,也可以用户跨主机(ssh/rsync主机同步)之间的复制;官网:https://rsync.samba.org/

搭建rsync

配置rsync源服务器
[root@node1 ~]# yum -y install rsync
[root@node1 ~]# vim /etc/rsyncd.conf	#把所有内容删掉然后添加下面的内容
uid = nobody	#以匿名用户方式登录
gid = nobody
use chroot = yes	#禁锢源目录
address = 192.168.218.214	#指定rsync源服务器地址
port 873		#指定端口号
log file = /var/log/rsyncd.log	#日志位置
pid file = /var/run/rsyncd.pid	#pid位置
hosts allow = 192.168.218.214/24	#允许访问的客户机网段
[wwwroot]
path = /var/www/html		#源目录的路径
comment = Document Root of www.ljm.com		#标识rsync源的域名
read only = yes				#开启只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper		#授权用户,可以设置多个用户,多个用户以空格区分
secrets file = /etc/user.db	#存放用户信息的数据文件


[root@node1 ~]# vim /etc/user.db	#编辑该文件
backuper:123		#写入用户和用户的密码
[root@node1 ~]# chmod 600 /etc/user.db
[root@node1 ~]# mkdir -p /var/www/html
[root@node1 ~]# chmod +r /var/www/html
[root@node1 ~]# ls -ld /var/www/html/
drwxr-xr-x 2 root root 6 1117 2020 /var/www/html/
[root@node1 ~]# rsync --daemon		#开启rsync服务
[root@node1 ~]# netstat -napt |grep 873
tcp        0      0 192.168.218.214:873     0.0.0.0:*               LISTEN      86385/rsync

[root@node1 ~]# echo "persona" > /var/www/html/1.txt
[root@node1 ~]# cat /var/www/html/1.txt
persona

客户端操作

[root@node2 elasticsearch-head]# mkdir /abc
[root@node2 elasticsearch-head]# rsync -avz backuper@192.168.218.214::wwwroot /abc/		#同步源服务器的wwwroot全局模块指定的源目录到/abc目录下
Password: 
receiving incremental file list
./
1.txt

sent 46 bytes  received 113 bytes  35.33 bytes/sec
total size is 8  speedup is 0.05
[root@node2 elasticsearch-head]# cd ~
[root@node2 ~]# ls /abc
1.txt
[root@node2 ~]# cat /abc/1.txt
persona

设置免密登录

[root@node2 ~]# echo "123" > /etc/server.pass
[root@node2 ~]# chmod 600 /etc/server.pass
[root@node2 ~]# rsync -avz --password-file=/etc/server.pass backuper@192.168.218.214::wwwroot /abc/		#免密登录要在同步时指定密码文件
receiving incremental file list

sent 20 bytes  received 58 bytes  156.00 bytes/sec
total size is 8  speedup is 0.10

搭建inotify

服务端配置

[root@node1 ~]# vim /etc/rsyncd.conf	#编辑rsync配置文件
uid = root		#改为root
gid = root		
read only =no	#关闭只读

#重启rsync服务
[root@node1 ~]# kill `cat /var/run/rsyncd.pid`
[root@node1 ~]# netstat -napt |grep 873
[root@node1 ~]# rsync --daemon
[root@node1 ~]# netstat -napt |grep 873
tcp        0      0 192.168.218.214:873     0.0.0.0:*               LISTEN      87070/rsync

客户端配置

[root@node2 ~]# vim /etc/sysctl.conf
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@node2 ~]# sysctl -p
[root@node2 ~]# yum -y install gcc gcc-c++
#安装inotify
[root@node2 ~]# tar zxvf inotify-tools-3.14.tar.gz -C /opt
[root@node2 ~]# cd /opt/inotify-tools-3.14/
[root@node2 inotify-tools-3.14]# ./configure
[root@node2 inotify-tools-3.14]# make && make install

[root@node2 abc]# cd ~
#创建一个实时监控并同步的脚本
[root@node2 ~]# vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /abc/"	#监控/abc目录的各种改动操作
RSYNC_CMD="rsync -apzH --delete --password-file=/etc/server.pass /abc/ backuper@192.168.218.214::wwwroot/"		#进行同步,将/abc目录下的文件同步到源服务器上
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
        if [ $(pgrep rsync | wc -l) -le 0 ] ; then		#进行判断,如果/abc目录下有修改则进行同步
                $RSYNC_CMD
        fi
done

[root@node2 ~]# chmod +x /opt/inotify.sh
[root@node2 ~]# chmod +x /etc/rc.d/rc.local
[root@node2 ~]# echo "/opt/inotify.sh" >> /etc/rc.d/rc.local	#设置开机自启
[root@node2 ~]# sh -x /opt/inotify.sh		#执行脚本
然后再开一个终端,进入/abc/目录下创建文件
[root@node2 inotify-tools-3.14]# cd /abc
[root@node2 abc]# ls
1.txt  2.txt  666
[root@node2 abc]# touch 123456

服务端查看/var/www/html目录
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/25598.html

同步  用户  目录  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1