crontabにtmpwatchコマンドを登録して/tmpディレクトリの更新日時やアクセス時刻が一時間以上経った古いファイルを削除する方法です。
今日サーバーにもう容量がないよ!って怒られたので調査していたら、仮想ディスプレイのXvfbの起動と終了を繰り返すプログラムを動かしていたのが原因でした。
Xvfbって起動させたとき/tmpディレクトリに作られるファイル一式を終了した時に削除せず放置するんですね。
まあ、/tmpディレクトリに入れておくとそのうち勝手に削除してくれるのでそれでも良いかもしれませんが、今回は頻繁にXvfbの起動と終了を繰り返しすぎたため一日でサーバー容量の90%位くらいのいらないファイルが/tmpディレクトリにたまっていました。
これでは困るので古いファイルを削除してくれるtmpwatchコマンドをcrontabに登録して1分毎に実行させることにしました。
crontabに登録したコマンドは以下のとおりです。
/usr/sbin/tmpwatchが実行ファイルで、-umcオプションでファイルやディレクトリのアクセス時刻、更新時刻、ステータス変更時刻をチェックします。
-xオプションは削除対象外の設定です。
後ろの方に1とあるのが1時間の意味で今回だとアクセス時刻または更新時刻、ステータス変更時刻が1時間以上経ったものを削除します。
で、最後の/tmpが/tmpディレクトリ内を対象とするように指定しています。