/tmp と /var/tmp の違い

どちらも一時ファイルを保存するディレクトリだけれど、ちゃんと説明があったのでメモ。

/tmp

・再起動するとファイルは消える
・定期的に削除される(10日)

/var/tmp

・再起動してもファイルは消えない
・定期的に削除される(30日)


CentOS 6.xの場合・・・
再起動後の処理は、/etc/rc.d/rc.sysinit で行われる。
定期的に削除する処理は、/etc/cron.daily/tmpwatch で行われる。


これらの用途は、FHS(Filesystem Hierarchy Standard(ファイルシステム階層標準)に記載されている。

Filesystem Hierarchy Standard
http://www.pathname.com/fhs/

FHS 2.3によると・・・

/tmp:P.15

The /tmp directory must be made available for programs that require temporary files.
Programs must not assume that any files or directories in /tmp are preserved between invocations of the program.

/tmpは、一時ファイルを必要とするプログラムのために使用可能でなければならない。
プログラムは、プログラムの呼び出している間だけ/tmpにファイルやディレクトリが保持されていると仮定しなければならない。

/var/tmp:P38

The /var/tmp directory is made available for programs that require temporary files or directories that are preserved between system reboots.
Therefore, data stored in /var/tmp is more persistent than data in /tmp.
Files and directories located in /var/tmp must not be deleted when the system is booted.
Although data stored in /var/tmp is typically deleted in a site-specific manner,
it is recommended that deletions occur at a less frequent interval than /tmp.

/var/tmpは、システムが再起動されても一時ファイルやディレクトリが保持される事を必要とするプログラムのために利用される。
従って、/var/tmp に保存されたデータは、/tmp のデータよりも長く保持される。
/var/tmpに置かれたファイルやディレクトリは、システムが起動された際に削除してはならない。
/var/tmpに保存されたデータは、通常サイト固有のルールで削除されるが、/tmp よりも低い頻度で削除する事を推奨する。


参考;
http://qiita.com/kuni-nakaji/items/f29be14be578b5a19d4b


【2014/10/15 追記】
関連記事を書きました。
tmpwatch の動作を確認する - しょぼんメモリ (´・ω・`)