3

特定のディレクトリを監視し、特定の期間内にどのファイルがどれだけ成長しているかを確認できるシェルスクリプトまたはユーティリティを誰かが持っていますか?

たとえば、ディレクトリに次のファイルがあるとします。

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は、iノードベースのファイルシステム通知テクノロジです。ファイルシステム内のファイルのさまざまなイベントを簡単に監視する可能性を提供します。これは、(廃止された)dnotifyの非常に強力な代替品です。inotifyは、アプリケーションで使用されるファイルを管理するための快適な方法を提供します。

inotifyドキュメントを参照してください

(これはほんの始まりに過ぎません。目的の出力を得るにはもう少しコードが必要ですが、これで簡単になります)

于 2013-03-14T23:09:35.893 に答える