Rain WikiWindows · Linux · Android

/tmp と一時ファイル

システムフォルダーすべての Linux ディストリビューション削除して安全: 一部

/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 の確認とクリーンアップ方法

  1. サイズを確認する: sudo du -sh /tmp /var/tmp
  2. メモリ上にあるか確認する: findmnt /tmp
  3. 設定されたクリーンアップを今すぐ実行する: sudo systemd-tmpfiles --clean
  4. 手動で削除する前に古いファイルを一覧表示する: sudo find /tmp -type f -atime +10

注意点

  • 実行中のプログラムが使用している /tmp 内のファイルを削除すると、プログラムが失敗する可能性があります。systemd-tmpfiles によるクリーンアップか、再起動を優先してください。
  • 実行中のサービスのソケットやロックファイルは削除しないでください。

出典

  1. tmpfiles.d(5) マニュアルページ man7.org
  2. Filesystem Hierarchy Standard 3.0: /tmp refspecs.linuxfoundation.org

補足: RainServer は Linux サーバーの監視と安全なクリーンアップを提供します。変更内容を表示し、実行前に確認を求めます。

最終確認: