第一步:部署rsync服务
1.1 服务端:
1.检查rsync是否安装 [root@rsync-backup ~]# rpm -qa rsync rsync-3.1.2-12.el7_9.x86_64 2.对rsync服务进行配置 [root@rsync-backup ~]# cat /etc/rsyncd.conf uid = rsync gid = rsync fake super = yes use chroot = no max connections = 200 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 10.0.0.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password [backup] comment = This is rsync backup! path = /backup/ 3.创建rsync管理用户 [root@rsync-backup ~]# useradd -s /sbin/nologin -M rsync 4.创建数据备份储存目录,目录修改属主 [root@rsync-backup ~]# mkdir /backup/ [root@rsync-backup ~]# chown -R rsync.rsync /backup/ 5.创建认证用户密码文件并进行授权600 [root@rsync-backup ~]# echo "rsync_backup:123456" > /etc/rsync.password [root@rsync-backup ~]# chmod 600 /etc/rsync.password 6.启动rsync服务 [root@rsync-backup ~]# rsync --daemon 至此rsync服务端配置完成 [root@rsync-backup ~]# ps -ef | grep rsync root 654 1 0 12:17 ? 00:00:00 /usr/bin/rsync --daemon --no-detach root 1346 1295 0 13:09 pts/0 00:00:00 grep --color=auto rsync
1.2 客户端配置:
1.检查是否安装rsync [root@nfs ~]# rpm -qa rsync rsync-3.1.2-12.el7_9.x86_64 2.创建安全认证文件,并进行修改权限600 [root@nfs ~]# echo "123456" > /etc/rsync.password [root@nfs ~]# chmod 600 /etc/rsync.password 3.测试数据传输(注意:一定要关闭服务端的selinux、防火墙) [root@nfs ~]# rsync -avz /opt/ [email protected]::backup --password-file=/etc/rsync.password sending incremental file list ./ 001.txt 002.txt
检查Linux版本是否支持Inotify机制
只有Linux内核版本在2.6.13起才支持,以及是否存在三个系统文件,存在则支持
检查Inotify相关文件 [root@nfs ~]# ll /proc/sys/fs/inotify/ total 0 -rw-r--r--. 1 root root 0 May 30 13:28 max_queued_events -rw-r--r--. 1 root root 0 May 30 13:28 max_user_instances -rw-r--r--. 1 root root 0 May 30 13:28 max_user_watches
第二步:部署inotify服务(首先确认是否有epel源)
[root@nfs ~]# yum install -y inotify-tools
[root@nfs ~]# rpm -ql inotify-tools
/usr/bin/inotifywait
/usr/bin/inotifywatch
- inotifywait:在被监控的目录等待特定文件系统事件(open、close、delete等事件),执行后处于阻塞状态,适合在Shell脚本中使用,是实现监控的关键
- Inotifywatch:收集被监控的文件系统使用的统计数据(文件系统事件发生的次数统计
第三步:手动测试inotify监控事件
[root@nfs ~]# inotifywait -mrq --timefmt "%y-%m-%d %T" --format "%T %w%f 当前事件:%e" -e close_write,delete /opt/
再开一个终端 [root@nfs opt]# rm -rf * #inotify检测信息如下: 23-05-30 13:39:54 /opt/001.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/002.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/003.txt 当前事件:DELETE 23-05-30 13:39:54 /opt/004.txt 当前事件:DELETE
编写实时监控和复制脚本
1.编写一个脚本,能够循环读取文件夹内容 [root@nfs ~]# cat /tmp/inotify.sh #!/bin/bash cmd="/usr/bin/inotifywait" $cmd -mrq --timefmt "%y-%m-%d %T" --format "%T %w%f 当前事件:%e" -e close_write,delete\ /data | \ while read line do cd /data && \ rsync -az --delete ./ [email protected]::backup done 2.执行脚本 [root@nfs ~]# sh -x /tmp/inotify.sh + cmd=/usr/bin/inotifywait + /usr/bin/inotifywait -mrq --timefmt '%y-%m-%d %T' --format '%T %w%f 当前事件:%e' -e close_write,delete /data + read line
测试脚本没问题后,将脚本放置后台运行,实时监听文件变化,进行同步,确保数据备份安全 1.脚本放置后台运行,在前台运行会占用终端,且终端关了,任务会断 [root@nfs data]# /bin/sh /tmp/inotify.sh & [1] 1397 [root@nfs data]# jobs [1]+ Running /bin/sh /tmp/inotify.sh & 2.该任务添加至开机启动文件 [root@nfs ~]# tail -2 /etc/rc.local # inotify + rsync script /bin/sh /tmp/inotify.sh &
至此Rsync+inotify实施复制结束
标签:Inofity,Rsync,inotify,--,backup,rsync,实时,nfs,root From: https://www.cnblogs.com/junwured/p/17444969.html