Использование cronjob для очистки / tmp

11

Безопасно ли использовать bash-скрипт и cronjob для /tmpавтоматического опустошения или я должен делать это по-другому?

Йохем Куйперс
источник

Ответы:

13

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

Ни один процесс не должен хранить там важные данные, но важно, чтобы вы могли очистить его, /tmpне прерывая процесс записи данных tmp.

Я рекомендую использовать tmpreaperдля этого.

Вы можете установить его с sudo apt-get install tmpreaper.

Со страницы руководства:

tmpreaper рекурсивно ищет и удаляет файлы и пустые каталоги, к которым не обращались в течение заданного количества секунд. Обычно он используется для очистки каталогов, которые используются для временного хранения, например, "/ tmp". Пожалуйста, прочитайте раздел ПРЕДУПРЕЖДЕНИЙ этого руководства.

Использование обычно включает в себя применение tmpreaperв /tmpсо временем SPEC аргумента. Аргументом спецификации времени может быть что угодно: dдни, hчасы, mминуты или sсекунды.

Пожалуйста, используйте --testдля пробного запуска и получите результаты перед тем, как вы действительно запустите команду. Это даст вам представление о том, что будет удалено, прежде чем вы фактически внесете какие-либо изменения в файловую систему.

Бруно Перейра
источник
Спасибо! Чтобы полностью ответить на мой вопрос, можете ли вы объяснить, почему это лучше, чем использование простого рекурсивного удаления?
Йохем Куиджперс
1
Нет, его проще использовать, а используемые аргументы более понятны. Простое rm -rfв списке файлов, возвращаемых, findсделало бы работу также. Это «просто другой способ», даже не говоря о том, что он лучший, просто тот, который я использую на серверах, которые я настраиваю.
Бруно Перейра
tmpreaperкажется хорошим инструментом, стоит использовать --testи --showdeletesпри тестировании.
RichVel
3

Попробуйте добавить cronjob, который выполняется

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Это приведет к удалению всех файлов старше 5 дней.

turbophi
источник