Это безопасно для rm -rf / tmp / *?

29

Это то, что я часто делал в Windows, но после недавнего фиаско я хочу убедиться. Это безопасно сделать

sudo rm -rf /tmp/*

?

ripper234
источник
Это постоянно работающий сервер или настольный компьютер с ежедневным отключением?
пользователь неизвестен
Я хотел бы спросить, почему вы хотите удалить файлы в / TMP? Это потому, что он заполняется, или это из соображений конфиденциальности? Если это проблема с пространством, это может быть связано с плохим поведением приложения или с тем, что оно должно быть в большем разделе. Если конфиденциальность, есть другие альтернативы, такие как использование зашифрованных файловых систем, которые вы можете рассмотреть.
Роб
Это может вызвать различные проблемы в вашей системе, но в основном это будет работать.
Петер говорит восстановить Монику
Связанный: askubuntu.com/questions/380238/how-to-clean-tmp
Сиро Сантилли 新疆 at 中心 法轮功 六四 事件

Ответы:

19

В общем нет.

Если он заполняется мусором, вы можете посмотреть, какое программное обеспечение не очищает после себя.

Вы также можете использовать команду find для идентификации файлов, которые не были изменены или не использовались в течение длительного времени и которые, вероятно, можно безопасно удалить.

обкрадывать
источник
9
Согласитесь с хором «нет» и добавлением, которое большинство дистрибутивов Linux автоматически очищают при /tmp/запуске. Хотя это не обязательно помогает, если мы говорим о сервере no-rebots-EVER здесь, одна возможность может запускаться find ./ -type f -atime 14 -exec rm {} \; каждую неделю или около того, чтобы удалить любой простой файл, к которому вообще не обращались в течение последних двух недель. ..
Шадур
find ./ -type f -atime 14 -deleteс gnu-find
неизвестен
@user это, конечно, предполагает, что /tmpне использует текущие настройки ядра по умолчанию, которые relatimeобновляются только при изменении файла, или noatime. В этом случае atimeне будет удаленно полезным.
ксенотеррацид
8

Реальный ответ - это зависит. / tmp может использоваться приложениями, которые требуют наличия файлов блокировки или временных журналов для запуска, или нет. Там могут быть символические ссылки ... не знаю, зачем, но это всегда возможно.

Вы должны действительно посмотреть, что там, прежде чем вы решите удалить его. выполнение rf -rf * на чем-либо опасно по своей природе.

Рори Олсоп
источник
3
В моей системе файлы журналов идут в / var / log, файлы блокировки в / var / lock.
пользователь неизвестен
3
@ уверен, что для системных демонов ... это не обязательно означает, что для пользовательского приложения нет блокировок или журналов, /tmpпотому что обычный пользователь не может писать, у /var/log|lockменя есть сценарий оболочки, который пишет блокировку для/tmp
xenoterracide
7

Нет. Например, если на вашем компьютере запущена база данных MySQL, которая уничтожит его сокет, или если вы используете emacs в качестве сервера, который уничтожит процесс сервера. Во многих других случаях удаление этих файлов небезопасно. Лучше всего написать скрипт, который проверяет дату файла и удаляет его, только если он старый.

Персона
источник
Быстрый вопрос, когда вы говорите «это убьет его сокет», что вы называете «сокетом»?
Касим
2

Нет.

Но вы можете создать виртуальный диск для / tmp dir, тогда он будет пустым после каждой перезагрузки системы. И, как побочный эффект, ваша система может стать немного быстрее.

У Google много информации о tmpfs и / или ramfs.

Johan
источник
Разве не принято очищать / tmp автоматически при перезапуске? Gentoo делает, и я думаю, что Ubuntu делает, но это было давно, так как я использовал его
Майкл Мрозек
Нет, я не думаю, что производные от Debian дистрибутивы, такие как Ubuntu, делают это (прямо сейчас). Но это довольно легко добавить, если вам это нравится.
Йохан
Ubuntu Matty (или как там называется текущая версия) делает. Но если вы не перезагрузите компьютер регулярно, этого не произойдет.
Роб
Ок, тока не проверял. Я сейчас использую трек LTS.
Йохан
Ubuntu делает, и каждый Linux, который я тестировал раньше, делал: Knoppix, Peanut, Halloween, Red Hat, SuSe. Почему это сделает систему быстрее? Что именно будет быстрее? Расчеты, доступ к диску, сеть, загрузка?
пользователь неизвестен
-4

Я предлагаю сначала переименовать вашу папку tmp, чтобы увидеть, что влияет на этот каталог. Переименуйте его из «tmp» в «old_tmp». Кроме того, создайте новую пустую папку с именем «tmp», потому что некоторые установочные или системные процессы могут требовать, чтобы эта папка создавала некоторые файлы в этом каталоге, например файлы журналов. Выполните следующие шаги для безопасного удаления даты tmp.

1- Переименуйте существующий каталог "tmp" в "old_tmp". 2. Создайте новый пустой каталог «tmp». 3. Назначьте все разрешения «0777» этому новому каталогу, чтобы у системы / установки было право создавать / размещать журнал и другие файлы в этом каталоге. 4. Запустите систему и приложения, чтобы убедиться, что все работает нормально и ведет себя как обычно. Держать в наблюдении 2-3 дня. 5. Если вы уверены, что ничего не изменилось из-за переименования вашего каталога «tmp» в «old_tmp», то вы можете удалить каталог «old_tmp».

Примечание. Если что-то вызывает проблемы из-за переименования каталога «tmp» в «old_tmp», тогда верните этому каталогу его первоначальное имя «tmp».

A.Aleem11
источник
2
Это действительно плохая идея. Существует много стандартных утилит оболочки, которые записывают временные файлы /tmpи могут перестать работать, как только вы переименуете оригинал /tmp. Также обратите внимание на то, что /tmpкаталог должен иметь определенные разрешения (например, установить липкий бит).
Кусалананда
Пожалуйста, внимательно прочитайте то, что я сказал: вы правы, может быть много стандартных утилит оболочки, которые записывают временные файлы в каталог "/ tmp", поэтому я сказал создать новый каталог "tmp" и назначил полное разрешение для этого после переименования старых существующих каталог "tmp".
A.Aleem11
1
Да, и вы сказали, что разрешения должны быть, 0777когда на самом деле они должны быть 1777.
Кусалананда