3

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

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

myfile1.txt
anotherfile.gz
thisonetoo.tar

该脚本可以运行一次,然后在下一次运行时它可能会说类似

myfile1.txt +5MB
anotherfile.gz -10MB
thisonetoo.tar +100MB
4

1 回答 1

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 文档

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

于 2013-03-14T23:09:35.893 回答