1. 简介
1.1inotify
一个 Linux 内核特性, 它监控文件系统, 并且及时向专门的应用程序发出相关的事件警告, 比如删除读写和卸载操作等
2. 环境准备
- [root@nfs01 ~]# cat /etc/redhat-release
- CentOS Linux release 7.2.1511 (Core)
- [root@nfs01 ~]# uname -r
- 3.10.0-327.el7.x86_64
- [root@nfs01 ~]# getenforce
- Disabled
- [root@nfs01 ~]# systemctl status firewalld.service
- firewalld.service - firewalld - dynamic firewall daemon
- Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
- Active: inactive (dead)
- [root@nfs01 ~]# ifconfig
- eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 10.0.0.31 netmask 255.255.255.0 broadcast 10.0.0.255
- inet6 fe80::20c:29ff:fe7a:66a4 prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:7a:66:a4 txqueuelen 1000 (Ethernet)
- RX packets 1195 bytes 283633 (276.9 KiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 198 bytes 24332 (23.7 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 172.16.1.31 netmask 255.255.255.0 broadcast 172.16.1.255
- inet6 fe80::20c:29ff:fe7a:66ae prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:7a:66:ae txqueuelen 1000 (Ethernet)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 10 bytes 744 (744.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
- inet 127.0.0.1 netmask 255.0.0.0
- inet6 ::1 prefixlen 128 scopeid 0x10<host>
- loop txqueuelen 0 (Local Loopback)
- RX packets 0 bytes 0 (0.0 B)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 0 bytes 0 (0.0 B)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.NFS 服务器部署 inotify 服务
3.1 安装 inotify
[root@nfs01 ~]# yum install -y inotify-tools
3.2 编写实时同步脚本
- [root@nfs01 ~]# cat /server/scripts/inotify.sh
- #!bin/bash
- inotifywait -mrq --format "%w%f" -e create,close_write,delete,moved_to /data/|\
- while read zy
- do
- rsync -az /data/ --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
- done
4. 测试
4.1 运行脚本
[root@nfs01 ~]# sh /server/scripts/inotify.sh
4.2 在 NFS 服务器的 / data 目录创建测试文档
- [root@nfs01 data]# touch test.txt
- [root@nfs01 data]# ls
- test.txt
4.3rsync 服务器的 / backup 目录查看
- [root@backup ~]# ls /backup/
- test.txt
来源: http://www.bubuko.com/infodetail-2529749.html