在unix系统上,我如何监视(就像'tail'的工作方式)目录对文件所做的更改 - 创建新文件或更改大小等等。
寻找命令行工具,而不是要安装的东西。
答案 0 :(得分:5)
大多数unix变体都有一个API,但它没有标准化。在Linux上,有inotify。在命令行上,您可以使用inotifywait
。用法示例:
inotifywait -m /path/to/dir | while read -r dir event name; do
case $event in
OPEN) echo "The file $name was created or opened (not necessarily for writing)";;
WRITE) echo "The file $name was written to";;
DELETE) echo "The file $name was deleted ";;
esac
done
Inotify事件类型通常不是您想要注意的(例如OPEN非常宽),所以如果您最终进行自己的文件检查,请不要感觉不好。
答案 1 :(得分:1)
find
命令创建目录的基线文件。使用相同参数的循环或cron作业find
目录,并根据基线文件检查新文件。使用像diff
这样的工具来获取差异..
例如
find /path [other options] >> baseline.txt
while true #or use a cron job
do
find /path [same options] >> listing.txt
diff baseline.txt listing.txt
# do processing here...
mv listing.txt baseline.txt # update the baseline.
sleep 60
done