文件监控脚本
inotifywait命令参数
-m是要持续监视变化,接收到一个事情而不退出,无限期地执行
-r使用递归形式监视目录
-q减少冗余信息,只打印出需要的信息
-e指定要监视的事件列表
-s输出错误信息到系统日志
-o输出事情到一个文件而不是标准输出
-d跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog
–timefmt是指定时间的输出格式
–format指定文件变化的详细信息
modify 修改,文件内容被修改。
attrib 属性,文件元数据被修改。
move 移动,对文件进行移动操作。
create 创建,生成新文件
open 打开,对文件进行打开操作。
close 关闭,对文件进行关闭操作。
delete 删除,文件被删除。
access 文件读取
1 | inotifywait -mrq --timefmt '%y %m %d %H %M --format '%T %w%f' -e create /home/test |
安装
方式一
- inotify-tools下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
- 安装
1
2
3
4
5tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
方式二
yum install inotify-tools
使用
目录A移动到目录B
vi inotify.sh
进入文件1
2
3
4
5
6
7
8
9!/bin/sh
SRC=$1
SRC=/home/test/
TARGET=/home/test2/
inotifywait -mrq --format '%w%f' -e create $SRC | while read line
do
mv "$line" $TARGET
echo "mv $line $TARGET"
donechmod +x inotify.sh
增加可执行权限./inotify.sh
执行echo "/bin/sh /root/shell/inotify.sh &" >> /etc/rc.local
脚本加入开机自启动,& 代表从后台开始运行该条命令