パッケージはテストシステムで解凍され、コンパイルされます/tmp/test
。
しなければならないいつでもディレクトリの最大サイズを取得します。これらすべての段階で。
現在、私は寸法を記録して自分自身を助けることができます。
du -sch /tmp/test >> /tmp/size.txt
流通中。しかし、これは非常に厄介で不正確な解決策です。コンピュータが/tmp/test
忙しくてdu
最大サイズを逃した可能性があります。エレガントな解決策はありますか?
利用可能なファイルシステムはextまたはbtrfsです(助けになる場合)。
読者が要求しました使用例:
Gentoo Linux用のパッケージを準備するときは、コンパイル中にどれだけのスペースが必要かを知っておく必要があります。一部のソフトウェアパッケージ(Firefox、Boost、LibreOfficeなど)では、パッケージに十分な空き容量があることを確認することが重要です。
私は多くの一時ファイルを生成するスクリプトを書いています。フォルダサイズを監視するのは面白いでしょう。
修正する:その間、sysdig
これはこの作業に有望に見えますが、まだフォルダサイズを取得していません。
答え1
1つの可能性は、ファイルシステムイベントを監視し、ファイルの作成および削除時にいくつかのロギングコマンドを実行することです。このアプローチを容易にするためのツールがあります。inotify、FSWATCHまたはLinux監査フレームワーク。各イベントの後にディスク全体の領域を記録したり、ディスク領域の変更を記録したり、ログを使用して最大サイズを計算したりできます。たとえば、次のスーパーユーザーの投稿をご覧ください。
次の記事では異なるアプローチを提供します。
問題のディレクトリを独自のパーティションにマウントした後、次を実行することをお勧めします。iostatそのパーティションに。これにより、このディレクトリにIOイベントを継続的に記録できます。
ディスクIOモニタリングの詳細については、次の記事を参照してください。
答え2
1分ごとにスクリプトを予約
*/1 *. *. *. * script path
スクリプトは次のようにする必要があります
#!/bin/bash
du -sch /tmp/|sed -n '1p' >>outputfile
しばらくして並べ替えて最大サイズを取得します。