/ tmpはいつクリアされますか?


143

私はさまざまなファイルをに入れようとしていますが/tmp、それらを削除する規則について疑問に思いましたか?

ディストリビューションごとに異なることを想像していますが、特にUbuntuとFedoraのデスクトップバージョンに興味があります。

しかし、それを見つける良い一般的な方法は素晴らしいことです。

さらに良いのは、それを制御する良い一般的な方法です!(「毎日午前3時、/tmp60日より古いファイルはすべて削除しますが、再起動時にディレクトリをクリアしないでください」など)


回答:


155

それはディストリビューションに依存します。一部のシステムでは、起動時にのみ削除され、他のシステムではcronジョブが実行され、n時間より古いアイテムが削除されます。

  • Debianのようなシステムの場合:起動時(ルールはで定義されています/etc/default/rcS)。
  • RedHatに似たシステム:年齢(RHEL6でした/etc/cron.daily/tmpwatch; RHEL7とsystemdでRedHatに似ていて/usr/lib/tmpfiles.d/tmp.conf、で呼び出され、で呼び出されますsystemd-tmpfiles-clean.service)。
  • Gentooで/etc/conf.d/bootmisc

19
そして、これがいつ起こるかに関係なく、実行中のプロセスにファイルがロックされている可能性があるため、それらを削除しないでください。
アダプター

定期的に削除できるパッケージもあります。
サミュエルエドウィン区

2
systemd(centos7 / rhel7)を使用するRedHatのようなシステムでは、/ usr / lib / tmpfiles.d / tmp.confで構成されます。systemdのtargetによって呼び出されsystemd-tmpfiles-clean.serviceます。
フランクリンピアト

1
レガシーDebianでは、tmpreaperパッケージを検討できます。これは、フォーク版ですtmpwatch
ヴロシュK.17年

Ubuntu 19.04:cat: /etc/default/rcS: No such file or directory
ボリス

24

CentOS(およびFedoraを想定)では、/ etc / cron.dailyと呼ばれるジョブがありtmpwatchます。これが実行/usr/sbin/tmpwatchされ、指定された時間内にアクセスされなかったファイルが削除されます。つまり、デフォルトの動作ではatime、ファイルが最近使用されたかどうかを評価します。

http://linux.die.net/man/8/tmpwatch

他のディストリビューション(およびインストール済み環境)では、/ tmpがtmpfsとしてマウントされる場合があります。これは、メモリ内ファイルシステムです。これはブート時にクリアされます。


CentOS 7.4にはこれがありません。
ケビンルメール

@KevinLemaire機能はsystemdサービスに移行されました。 lists.centos.org/pipermail/centos/2014-October/147155.html
cjc

あなたはtmpwatchファイルが見つからなかった場合は、使用してtmpwatchダウンロードすることができますyum install tmpwatch
ンSEKロング

他のディストリビューションでtmpwatchを入手できますか?素晴らしそうですね。私はdebianベースのディストリビューションに参加しています
ジョナサン

sudo find /tmp -type f -atime +10 -delete10日間アクセスされていないtmpファイルを削除します。注意して使用してください
ジョナサン

13

私が使用しているUbuntu 11.10では、にスタートアップスクリプトがあり/etc/init/mounted-tmp.confます。それの始まりはこれを言います:

# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.

description "Clean /tmp directory"

start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)

詳細を読むことができますが、一般的に/tmpは、マウントされているか、マウントされているときにクリーンアップ/usrされます。これはブート時に定期的に発生するため、この/tmpクリーニングはブートのたびに実行されます。

/etc/default/rcSあなたたTMPTIME二つの供給するために、上記のinitスクリプトで使用され、設定されfind、その端部にコマンドを-基本的に、その時間に基づいてファイルの削除を制御する(変性変化、アクセス)。


5

RHEL 6.2では、10日間アクセスされなかった場合、/ tmp内のファイルはtmpwatchによって削除されます。

ファイル/etc/cron.daily/tmpwatchは、tmpwatchが呼び出される方法を定義します。

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
    -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
    -X '/tmp/hsperfdata_*' 10d /tmp

-x引数は、除外されるファイルです。最後から2番目の引数は、最後にアクセスした時間の後に待機する時間です。最後の引数は、調べるディレクトリです。


5

Fedora 18以降で/tmptmpfs、デフォルトでマウント(つまりRAM)されるため、電源を切ると消去されます。

この動作は、発行systemctl mask tmp.mountして再起動することで無効にでき(発行して再起動すると再び有効になりますsystemctl unmask tmp.mount)、ファイルシステムに/tmpマウントされ、設定/で制御でき/usr/lib/tmpfiles.d/tmp.confます。

参照http://fedoraproject.org/wiki/Features/tmp-on-tmpfsをし、man tmpfiles.dそれぞれのケースの詳細については。


3

openSUSE 13.2では、sysconfigの次の変数を使用して消去動作を制御できます。

  • MAX_DAYS_IN_TMP
  • MAX_DAYS_IN_LONG_TMP
  • TMP_DIRS_TO_CLEAR
  • LONG_TMP_DIRS_TO_CLEAR
  • OWNER_TO_KEEP_IN_TMP
  • CLEAR_TMP_DIRS_AT_BOOTUP

これらの変数は次の方法で変更できます(各変数の使用法もそこにあります)。

  1. /etc/sysconfig/cronコマンドラインでファイルを手動で編集します。
  2. Yastを開き、System-> / etc / sysconfig Editor-> System-> Cronに移動します

2

さらに良いのは、それを制御する一般的な方法です。(「毎日午前3時、60日より古い/ tmpファイルを削除しますが、再起動時にディレクトリをクリアしないでください」など)

起動時に消去したくないソートファイルは/ var / tmpに移動します

それが目的です:-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.