web-dev-qa-db-ja.com

/ tmpのクリーニング方法は?

rizhas@rizhas-laptop:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        67G   58G  5,2G  92% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,5G   12K  1,5G   1% /dev
tmpfs           303M  1,2M  302M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            1,5G  348K  1,5G   1% /run/shm
none            100M   80K  100M   1% /run/user
overflow        1,0M  1,0M     0 100% /tmp
overflow        1,0M  1,0M     0 100% /tmp

/tmpをクリーンアップする方法は?

69
Rizhas

/ tmpはリブート時にクリーンアップされることになっていますが、リブートしないと(サーバーでは正常です)、クリーンアップは行われません。

find /tmp -ctime +10 -exec rm -rf {} +

10日より古いすべてのファイルとフォルダーを削除します。毎日のcronに追加することをお勧めします。


更新

以下のコメントで、@ sfusseneggerは、ニーズや操作しているシステムにより適している可能性がある、このコマンドのわずかに異なる形式を推奨しています。

Sudo find /tmp -type f -atime +10 -delete

ここでは、コマンドがSudoを使用してすべてが削除されていることを確認し(またはルートとして実行できます)、アクセスされていない以上のファイルを操作しています10日間で、フォルダーではなくファイルのみを削除します。また、-deleteを使用して、rmコマンドを実行する必要がないようにします。

110
Andrei R

Tmpディレクトリ(/ tmp// usr/tmpなど)内のすべてのものを削除できると想定できます。削除を開始する前に、使用しているすべてのプログラムとサービスを停止します。これは、プログラムが/ tmp /を使用してそのセッションの情報を一時的に保存できるためです。 mysqlやApacheを実行している場合は、Sudo service mysql stopSudo service Apache2 stopを実行します。/tmp /ディレクトリ内のファイルの名前は、ほとんどの場合、どのプログラムが属しているかを知る手掛かりになります。

コマンドラインから...

cd /tmp/
pwd
Sudo rm -r *

/ tmp /ディレクトリを空にして、すべてのファイルとサブディレクトリを削除します。正しく入力するように注意してください。コマンドpwdは必要ありませんが、/tmpを表示する必要があります。

インタラクティブに必要な場合(したがって、削除を確認する必要があります):

cd /tmp/
Sudo rm -ri *

また、以下に示すように、再起動により/ tmpもクリアされることに注意してください: / tmpディレクトリはどのようにクリーンアップされますか? したがって、再起動後に/ tmp /がファイルでいっぱいになった場合、それらのファイルの場所を調査する必要がありますに由来する。

また、/ tmpの1 Mbは多くのスペースではないことを述べたいと思います。 MySQLを使用していますか?これを修正する方法については https://unix.stackexchange.com/a/76058/10017 をご覧ください(@drcに感謝)

34
Rinzwind

tmpreaperプログラムを使用して、/ tmpを定期的にクリーンアップできます。このプログラムは、特定の期間(通常は2週間)にアクセスされなかったものをすべて削除します。これが適切に機能するためには、そのファイルシステムでatimesオプションが有効になっている必要があります。 tmpfsを使用している場合、これを実行しているように見えますが、問題ありません。

もちろん、再起動すると/ tmpもクリアされますが、それは退屈です。

10
Simon Richter

ディレクトリ/tmpは一時的なことを意味します。

このディレクトリには一時データが保存されます。そこから何も削除する必要はありません。それに含まれるデータは、再起動するたびに自動的に削除されます。

それでもその中に存在するデータを削除したい場合は

Sudo rm -r /tmp/*

これらは一時ファイルであるため、そこから削除しても問題は発生しません。

7
Tarun

rm -r ./*などのコマンドを実行する前に注意してください。一度実行すると、データを回復することは非常に困難または不可能になります。

すべて削除されます。削除するディレクトリが正しいことを確認してください。

物事を処理するより安全な方法があります。

# Sudo rm -r /tmp/*

そうすれば、誤ってシェルhistoryからこのコマンドを実行しても、間違ったファイルは削除されません(/tmpに保存していない限り)。

4
user595510

TMPTIMEはデフォルトで/tmpであるため、0ディレクトリはブートごとにデフォルトでクリアされました。

2
Avinash Raj

Linuxファイルシステム上の「/ tmp」マウントがオーバーフロー(多くの場合1MBのサイズ)としてマウントされている場合、「/ tmp」を独自のパーティションとして指定しておらず、ルートファイルシステムがいっぱいで「/ tmp」がフォールバックとして再マウントされました。スペースをクリアした後にこれを修正するには、フォールバックをアンマウントするだけで、元の場所に再マウントする必要があります。

Sudo umount overflow

デバイスが使用中の場合

Sudo umount -l overflow
1
ck reddy