查看linux中目录中正在增长的文件

时间:2013-03-14 22:59:42

标签: linux bash shell filesystems

是否有人拥有可以监控特定目录的shell脚本或实用程序,并查看哪个文件在特定时间段内增长,可能还有多少?

例如,如果我在目录中有以下文件:

myfile1.txt
anotherfile.gz
thisonetoo.tar

脚本可以运行一次,然后在下一次运行时可能会出现类似

的内容
myfile1.txt +5MB
anotherfile.gz -10MB
thisonetoo.tar +100MB

1 个答案:

答案 0 :(得分:2)

我使用inotifywait&

cd /path/to/dir
inotifywait -m -e modify  -r . |
while read a; do
    [[ $a =~ MODIFY[[:space:]]+(myfile1.txt|anotherfile.gz|thisonetoo.tar) ]] &&
    du -h "${BASH_REMATCH[1]}"
done

注意

这有利于每N秒避免轮询

  

inotify是一种基于inode的文件系统通知技术。它提供了简单地监视文件系统中文件的各种事件的可能性。它是(过时的)dnotify的非常强大的替代品。 inotify为您提供了一种管理应用程序中使用的文件的简便方法。

请参阅inotify doc

(这只是一个开始,你需要更多的代码来获得所需的输出,但现在这很容易)