Linux监控文件及目录变动
inotify-tools工具
Inotify一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作等
inotify-tools 是为linux下inotify文件监控工具提供的一套c的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。 inotify-tools是用c编写的,除了要求内核支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数
- Ubuntu下安装
sudo apt-get install inotify-tools
例子
#!/bin/bash
cd `dirname $0`
rebuild() {
local build_lock="build.lock"
local pending_lock="pending.lock"
test -f $build_lock && {
echo "building is in process and waiting.." >&2
touch $pending_lock
exit 1
}
touch $build_lock
echo -------------------- rebuild
mvn package
echo -------------------- rebuild complete
rm $build_lock
test -f $pending_lock && {
rm $pending_lock
rebuild &
}
}
main() {
local folder="src/"
local file_4_changes="/tmp/monitor.log"
while inotifywait -e create,modify,delete -r $folder -o $file_4_changes; do
rebuild &
done
}; main "$@"
评论