本文共 2166 字,大约阅读时间需要 7 分钟。
inotifywait尤其适用于在脚本中等待某事件的发生,并可基于特定的事件执行相应操作。如将其用于脚本中监控某指定目录中的文件上的修改、新建、删除、属性信息的改变,而后使用rsync命令将某事件对应的文件同步至其它主机上。
直接开始吧,我们追求结果,不管原理。^ _^
安装实时监测工具inotify和同步工具rsync
$ sudo apt-get update$ sudo apt-get install inotify-tools$ sudo apt-get install rsync
添加 inotify 的参数到系统内核配置
$ tail -4 /etc/sysctl.conf###inotify的参数fs.inotify.max_queued_events = 16384fs.inotify.max_user_instances = 1024fs.inotify.max_user_watches = 1048576
inotify实时监控目录变化
$ inotifywait -mrq -e modify,create,move,delete /data/test
inotify单次监控目录或者文件变化(一般是目录才有意义)
$ inotifywatch -mrq -e modify,create,move,delete /data/test
配置完成之后直接编辑脚本
$ cat <> inotifyRsync.sh#!/bin/bash#Author:Shensg#Time:2020-12-29DIR="/data/test"COPYDIR="/data/test"_INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete $DIR"_RSYNC_CMD="rsync -azH --delete $DIR/ ubuntu@192.168.7.19:$DIR"$_INOTIFY_CMD | while read DIRECTORY EVENT FILEdo if [ $(pgrep rsync | wc -l) -le 0 ] ; then $_RSYNC_CMD fidoneEOF
脚本配置好之后放到系统( /etc/profile.d/ )的启动文件目录里面,系统重启就会运行
如果不放到系统启动启动文件目录下也可以自己建一个进程运行也可以,看大家的喜好吧rsync 指定目录和密码文件同步方式
$ cat <> /home/$USER/rsyncd.confport = 2873use chroot = falsemax connections = 100strict modes = yespid file = /run/rsyncd.pidlock file = /run/rsync.locklog file = /var/log/rsyncd.log[www]path = /var/www/htmlcomment = Backup LobbyServer logs fileignore errorsread only = nowrite only = nolist = false##这个默认不识别,有时候生效,有时候不生效,笔者目前也不知道是什么原因,所以在写时会多写一个[test]path = /testcomment =Backup LobbyServer logs fileignore errorsread only = nowrite only = nolist = falsehosts allow = 10.10.104.255/32 #开启白名单hosts deny = 0.0.0.0/0 #拒绝所有人#auth users = ubuntusecrets file = /tmp/rsync.secrets #密码文件EOF
生成rsync的密码文件,授权600权限(必须是600权限,否则失败)
$ cat <>/tmp/rsync.secrets#user:passwordubuntu:123456EOFchmod 600 /tmp/rsync.secrets
启动rsync进程
rsync --daemon --config=/home/$USER/rsyncd.conf
客户端只需要配置生成密码文件即可同步(密码文件直接复制服务端的即可)
生成rsync的密码文件,授权600权限(必须是600权限,否则失败)$ cat <>/tmp/rsync.secretsubuntu:123456EOFchmod 600 /tmp/rsync.secrets
同步文件
$ rsync -avz --password-file=/etc/rsyncd.secrets /var/www/html ubuntu@192.168.7.19::www
转载地址:http://hhqwi.baihongyu.com/