Как очистить / tmp?

44
[email protected]:~$ 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 ?

    
задан Rizhas 21.11.2013 в 08:59
источник

7 ответов

65

/ tmp должен быть очищен при перезагрузке, но если вы не перезагрузитесь (что нормально для серверов), очистка не произойдет

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

удалит все файлы и папки старше 10 дней. вы можете добавить его в ежедневный cron.

UPDATE

В комментариях ниже @sfussenegger рекомендует немного другой формат этой команды, который может лучше соответствовать вашим потребностям и системе, в которой вы работаете.

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

В этой команде используется sudo , чтобы убедиться, что все удалено (или вы можете запустить его как root), работая с файлами, которые не были доступны более 10 дней и только удаляет файлы, а не папки . Он также использует -delete , чтобы избежать необходимости выполнять команду rm

    
ответ дан Andrei R 15.04.2015 в 01:29
27

Можно предположить, что все, что находится внутри каталога tmp (/ tmp / / usr / tmp и т. д.), можно удалить. Прежде чем вы начнете удалять все программы и службы, которые вы используете, поскольку / tmp / могут использоваться программами для временного хранения информации для этого сеанса. Так что sudo service mysql stop и sudo service apache2 stop , если у вас запущен mysql и / или apache. Имя файлов в каталоге / tmp / чаще всего дает представление о том, к какой программе они принадлежат.

Итак, из командной строки ...

cd /tmp/
pwd
sudo rm -r *

удалит каталог / tmp / и удалит все файлы и подкаталоги. Будьте осторожны, чтобы напечатать его правильно. Команда pwd там не нужна, но должна показывать /tmp .

Если вы хотите его интерактивно (поэтому вам нужно подтвердить удаление):

cd /tmp/
sudo rm -ri *

Также стоит отметить, что перезагрузка очистит / tmp, как показано здесь: Как очищается каталог / tmp? Итак, если / tmp / заполнено файлами после перезагрузки, вам нужно выяснить, откуда эти файлы.

Я также хотел бы заявить, что 1 Мб для / tmp - это не много места. Вы используете MySQL? См. Ссылка о том, как исправить это (спасибо @drc)

    
ответ дан Rinzwind 21.11.2013 в 09:10
8

Программа tmpreaper может использоваться для периодической очистки / tmp . Эта программа удаляет все, что не было доступно в течение определенного периода времени, обычно две недели. Для правильной работы файловой системы должна быть включена опция atimes . Если вы используете tmpfs , который, как он выглядит, вы делаете, тогда вы должны быть в порядке.

Конечно, перезагрузка также очищает / tmp , но это будет скучно.

    
ответ дан Simon Richter 21.11.2013 в 15:00
7

Каталог /tmp означает временный.

В этом каталоге хранятся временные данные. Вам не нужно ничего удалять из него, данные, содержащиеся в нем, автоматически удаляются после каждой перезагрузки.

Если вы хотите удалить присутствующие в нем данные, используйте

sudo rm -r /tmp/*

удаление из него не вызовет никаких проблем, поскольку это временные файлы.

    
ответ дан Tarun 21.11.2013 в 09:11
4

Будьте осторожны, прежде чем запускать команду, например, rm -r ./* . Когда вы запустите его, будет очень сложно или невозможно восстановить какие-либо данные.

Все будут удалены. Убедитесь, что каталог, который вы удаляете, прав.

Существует более безопасный способ обработки вещей.

# sudo rm -r /tmp/*

Таким образом, когда вы случайно запустите эту команду из своей оболочки history , она не удалит неправильные файлы (если вы не храните их в /tmp ).

    
ответ дан Mark Yisri 25.01.2017 в 11:19
2

Каталог /tmp по умолчанию удалялся при каждой загрузке, потому что TMPTIME по умолчанию 0 .

    
ответ дан Avinash Raj 21.11.2013 в 09:10
1

Если ваша монтировка «/ tmp» в файловой системе Linux монтируется как переполнение (часто размером 1 МБ), это, вероятно, связано с тем, что вы не указали «/ tmp» как свой собственный раздел, а ваша корневая файловая система заполнена и «/ tmp "был перемонтирован как резерв. Чтобы исправить это после того, как вы очистили место, просто отключите резервную копию и он должен вернуться в исходную точку:

sudo umount overflow

Если устройство занято, используйте

sudo umount -l overflow
    
ответ дан ck reddy 16.11.2016 в 13:24