FindLargedir-Goは、単一のフラット構造に100,000を超えるエントリを持つファイルシステムで「ブラックホール」ディレクトリを識別するのに役立つクイックハックです。プログラムは、そのような数のイベントを特定し、それらについて報告しようとします。
プログラムはSymlinksに従うことはなく、 R/W許可は、ディレクトリのイノードサイズをエントリの比率に計算し、実際にカウントせずにディレクトリ内の多くのエントリを推定できるようにする必要があります。この方法は、ディレクトリ内の実際のエントリの数の近似にすぎませんが、ディレクトリを違反するためにすばやくスキャンするのに十分です。
-a )は、過度のI/Oと過度のメモリ使用を引き起こす可能性があります。必要に応じてのみ使用してください-7パラメーター)が必要です-xパラメーター)は、findlargedir -goをインストールする2つの方法があります。 findladedir-goをインストールするには2つの方法があります。リリースページから希望のフレーバーをダウンロードして、手動でインストールします。
go get https://github.com/dkorunic/findlargedir-go使用法:
Usage: findlargedir [-7ahopx] [-c value] [-t value] [parameters ...]
-7, --isilon enable support for EMC Isilon OneFS 7.x
-a, --accurate full accuracy when checking large directories
-c, --testcount=value
set initial file count for inode size testing phase (default
20000)
-h, --help display help
-o, --onefilesystem
never cross filesystem boundaries
-p, --progress display progress status every 5 minutes
-t, --threshold=value
set file count threshold for alerting (default 50000)
-x, --cloexec disable open O_CLOEXEC for really ancient Unix systems正確なモード( -aパラメーター)を使用する場合、大きなディレクトリルックアップが長時間プロセスを完全に停止することに注意してください。このモードが行うことは、基本的に、エントリの正確な数を計算する可能性のあるディレクトリの可能性のある二次的な完全な正確なパスです。
プログラムの進行状況がわからない場合は、 sigusr1またはsigusr2プロセス信号( ^cで試してみてください)を送信して、最後の処理パスを確認するか、進行状況フラグ( -pパラメーター)を使用して、連続した5分間のステータスの更新を確認してください。
EMC ISILON ONEFS> = 7.1および<8.0(FreeBSD 7.4に基づく)で実行しようとしている場合は、 -7パラメーターでIsilonモードを追加してください。 ONEFS 8.0+リリースでは、 -7パラメーターを使用する必要はありません。これは、386およびAMD64プラットフォームでのみ機能します。
本当に古代のFreeBSDシステム(<8.3)またはEMC Isilon OneFS(<7.2)などの派生物があり、プログラムが一時ファイルの作成に失敗した場合は、 -xパラメーターでCloexecモードを使用してみてください。これは、386およびAMD64プラットフォームでのみ機能します。
マウントされたファイルシステムへの下降を避けたい場合は(-XDEVオプションを検索するように)、 -oパラメーターを備えたOneFilesystemモードを使用します。ただし、これはWindowsでは機能しません。
いくつかのファイルシステムで可能な犯罪者を見つけるための典型的なユースケース:
root@box: ~ # findlargedir -c 10000 -t 50000 -a /var /home
2018/09/04 08:13:16 Note: program will attempt to alert on directories larger than 50000 entries by default.
2018/09/04 08:13:16 Determining inode to file count ratio on " /var " . Please wait, creating 10000 files...
2018/09/04 08:13:16 Done. Approximate directory inode size to file count ratio on " /var " is 26.2144.
2018/09/04 08:13:21 Found 0 large directories in " /var " .
2018/09/04 08:13:21 Determining inode to file count ratio on " /home " . Please wait, creating 10000 files...
2018/09/04 08:13:21 Done. Approximate directory inode size to file count ratio on " /home " is 27.0336.
2018/09/04 08:13:21 Directory " /home/user/torrent " is possibly a large directory with ~ 100k entries.
2018/09/04 08:13:21 Calculating " /home/user/torrent " directory exact entry count. Please wait...
2018/09/04 08:13:21 Done. Directory " /home/user/torrent " has exactly 99164 entries.
2018/09/04 08:13:21 Found 1 large directories in " /home " .