/tmp と一時ファイル
/tmp は、プログラムが短期間のみ必要とする一時ファイル用のディレクトリです。/var/tmp は、再起動後も保持されるべき一時ファイル用です。多くのディストリビューションでは、/tmp は起動時にクリアされるか、メモリ上の tmpfs としてマウントされており、両方のディレクトリ内の古いファイルは systemd-tmpfiles によって削除されます。
1/tmp と /var/tmp の違い
Filesystem Hierarchy Standard(ファイルシステム階層標準)では、プログラムは /tmp 内のファイルがプログラムの実行間も保持されると想定してはならないとされています。一方、/var/tmp は再起動後も保持されます。どちらもすべてのユーザーが書き込み可能でスティッキービットが設定されているため、ユーザーは自分のファイルのみを削除できます。
2自動クリーンアップ
systemd-tmpfiles は /usr/lib/tmpfiles.d/tmp.conf などの tmpfiles.d ディレクトリからルールを読み取ります。これには通常、/tmp に 10 日間、/var/tmp に 30 日間という有効期限が設定されています。クリーンアップは systemd-tmpfiles-clean.timer を通じて毎日実行されます。
3tmpfs
/tmp が tmpfs としてマウントされている場合、ファイルは RAM とスワップ上に存在し、再起動のたびに消去されます。findmnt /tmp を実行すると、tmpfs かどうかを確認できます。
/tmp の確認とクリーンアップ方法
- サイズを確認する:
sudo du -sh /tmp /var/tmp - メモリ上にあるか確認する:
findmnt /tmp - 設定されたクリーンアップを今すぐ実行する:
sudo systemd-tmpfiles --clean - 手動で削除する前に古いファイルを一覧表示する:
sudo find /tmp -type f -atime +10
注意点
- 実行中のプログラムが使用している
/tmp内のファイルを削除すると、プログラムが失敗する可能性があります。systemd-tmpfiles によるクリーンアップか、再起動を優先してください。 - 実行中のサービスのソケットやロックファイルは削除しないでください。
関連記事
- findコマンドで大容量ファイルや古いファイルを検索するLinuxでfindコマンドを使用して大容量ファイルや古いファイルを一覧表示し、安全にプレビューした上で確認済みのファイルのみを削除する方法を解説します。
- du および ncdu を使用したディスク使用量の確認Linux ディスクを圧迫している原因を、du および対話型の ncdu を使用して特定する方法を解説します。同一ファイルシステム内に留まるオプションについても説明します。
- ファイル権限: chmod と chownLinuxの読み取り、書き込み、実行権限の仕組み、755や644の意味、および所有者とモードを安全に変更する方法について解説します。
出典
- tmpfiles.d(5) マニュアルページ man7.org
- Filesystem Hierarchy Standard 3.0: /tmp refspecs.linuxfoundation.org
補足: RainServer は Linux サーバーの監視と安全なクリーンアップを提供します。変更内容を表示し、実行前に確認を求めます。
最終確認: