確認環境
PC | Thinkpad X1 Carbon 2nd Gen |
OS | FreeBSD 12.1-RELEASE-p5 |
課題
気付けば/tmp
ディレクトリに大量の一時ファイルが溜まっている。。
自動で削除して欲しい。。。
対策
/etc/rc.conf
と/etc/periodic.conf
の設定で自動で削除するようになる。
PC起動時に一括で削除することもできるし、一定期間アクセスがないファイルだけ削除することもできる。
一括で削除したい場合(/etc/rc.conf)
/etc/rc.conf
に以下を追記すると、PC起動時に一括でファイルを削除するようになる。
clear_tmp_enable="YES"
X11関連のファイル
X11関連のファイルの削除と再構築をしない場合は、以下を追記。
clear_tmp_X="NO"
と、man
には書いているように見えるのだが、NO
を指定しても全部削除されている。
そして、PC起動時はたしかに再構築をしてなさげ。(/tmp
ディレクトリは空になっていた)
ちなみに僕の環境では、YES
を指定した場合、起動時に再構築されているのは以下のディレクトリっぽい。
$ ls -la /tmp/ total 2 drwxrwxrwt 2 root wheel 2 6月 16 17:13 .font-unix/ drwxrwxrwt 2 root wheel 2 6月 16 17:13 .ICE-unix/ drwxrwxrwt 2 root wheel 2 6月 16 17:13 .X11-unix/ drwxrwxrwt 2 root wheel 2 6月 16 17:13 .XIM-unix/
指定期間アクセスがないファイルだけ削除したい場合(/etc/periodic.conf)
/etc/periodic.conf
に以下を追記すれば、一定期間アクセスがないファイルだけを削除できる。
期間はdaily_clean_tmps_days
で調整してねと。
daily_clean_tmps_enable="YES" # 自動削除を有効にするなら`YES` daily_clean_tmps_days="30" # 削除対象とする無アクセス日数を指定 daily_clean_tmps_ignore="$daily_clean_tmps_ignore *.vim myfile" # 削除しないファイルを指定
ちなみに設定用の変数は、毎日/毎週/毎月という周期ごとに用意されているっぽい。
各変数のPrefix(上の例ではdaily
の部分)を変えればいい。
Prefix | 周期 |
---|---|
daily |
毎日 |
weekly |
毎週 |
monthly |
毎月 |
デフォルトの無視ファイル
デフォルト(/etc/default/periodic.conf
)では以下が削除非対象になっている。
daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix" daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group .snap" daily_clean_tmps_ignore="$daily_clean_tmps_ignore .sujournal"
clear_tmp_enableとの優先度
/etc/rc.conf
にclear_tmp_enable="YES"
を指定している場合、
/etc/periodic.conf
の設定より優先されて一括で削除してそう。
ただ、マニュアルにそんな記載を見つけたというわけではないので、何か別に設定が必要なだけかも。
削除するディレクトリの指定
/tmp
以外に削除したいディレクトリがある場合、以下で指定できるっぽい。
区切りは/etc/periodic/daily/110.clean-tmps
を見た感じ空白文字(シェルスクリプトのIFS)。
daily_clean_tmps_dirs="/tmp" # 削除対象のルートディレクトリを指定
さいごに
ここまで調べた後に、一括削除でいい場合は/tmp
をRAMに割り当てればいいことに気付く。
なんてこった。
以上。