findコマンドで大容量ファイルや古いファイルを検索する
コマンドラインツールすべての Linux ディストリビューション
findは、サイズ、経過時間、名前、種類などの条件に基づいてディレクトリツリーを検索する標準的なLinuxコマンドです。find / -xdev -type f -size +1Gを実行すると、ルートファイルシステム上の1 GBを超えるファイルが一覧表示されます。これは、ディスク容量が急激に不足した原因を特定する最も迅速な方法の一つです。
1有用なテスト条件
-size +500M(500 MiBより大きい)、-mtime +30(30日以上前に更新された)、-name '*.log'、-type f(ファイルのみ)、-xdev(他のファイルシステムを横断しない)。
2サイズの表示
サイズを表示するには「-exec ls -lh {} +」を追加するか、GNU findの-printf(例: -printf '%s %p\n')を使用して出力をソートします。
3安全な削除方法
-deleteオプションは一致したファイルを即座に削除します。まず-deleteを付けずに同じコマンドを実行してリストを確認し、問題がないことを確認してから最後に-deleteオプションを追加してください。
1 GBを超えるファイルを検索する方法
- 実行コマンド:
sudo find / -xdev -type f -size +1G -exec ls -lh {} + - 削除する前に、各ファイルの所有プログラムを特定してください。
- 古いログをプレビューする場合:
sudo find /var/log -type f -name '*.gz' -mtime +30 - 確認後に削除する場合:
sudo find /var/log -type f -name '*.gz' -mtime +30 -delete
注意点
- -deleteをテスト条件の前に配置すると、指定したパス以下のすべてのファイルが削除されます。
- データベースファイル、仮想ディスクファイル、スワップファイルは意図的に大容量になっているため、削除しないでください。
関連記事
- du および ncdu を使用したディスク使用量の確認Linux ディスクを圧迫している原因を、du および対話型の ncdu を使用して特定する方法を解説します。同一ファイルシステム内に留まるオプションについても説明します。
- inodeと「No space left on device」inodeとは何か、df -iコマンドでinodeの使用状況を確認する方法、および数百万の小さなファイルを含むディレクトリを特定する方法について解説します。
- df (disk free)dfコマンドの出力の読み方、一般ユーザーにおいてAvailがゼロになる前にUse%が100%に達する理由、およびdf -iを使用してinodeを確認する方法について解説します。
出典
最終確認: