Назад | Перейти на главную страницу

Когда очищается / tmp?

Я собираюсь складывать разные файлы в /tmp, а меня интересовали правила их удаления?

Я представляю себе это по-разному для разных дистрибутивов, и меня особенно интересуют настольные версии Ubuntu и Fedora.

Но хороший общий способ узнать было бы здорово.

Еще лучше был бы хороший общий способ управления этим! (Что-то вроде "каждый день в 3 часа ночи удалять все /tmp файлы старше 60 дней, но не очищать каталог при перезагрузке ')

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

  • В Ubuntu 14: использование tmpreaper который вызывается /etc/cron.daily, настроенный через /etc/default/rcS и /etc/tmpreaper.conf. (Кредиты на этот ответ).
  • В Ubuntu 16: использование tmpfiles.d. (Кредиты на этот ответ).
  • В других системах, подобных Debian: при загрузке (правила определены в /etc/default/rcS).
  • В системах, подобных RedHat: по возрасту (RHEL6 было /etc/cron.daily/tmpwatch ; RHEL7 / RHEL8 и RedHat-подобные с systemd он настроен в /usr/lib/tmpfiles.d/tmp.conf, вызванный systemd-tmpfiles-clean.service).
  • На Gentoo /etc/conf.d/bootmisc.

В CentOS (и я предполагаю, что это Fedora) в /etc/cron.daily есть задание под названием tmpwatch. Это работает /usr/sbin/tmpwatch, который удалит файлы, к которым не было доступа в течение указанного количества часов, т.е. по умолчанию проверяется atime для файла, чтобы оценить, использовался ли он недавно.

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

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

В 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 set, который используется в приведенном выше сценарии инициализации для подачи двух find команды в конце - в основном управляющие удалением файлов в зависимости от их времени (изменено, изменено, выполнено доступ).

В RHEL 6.2 файлы в / tmp удаляются tmpwatch, если к ним не обращались в течение 10 дней.

Файл /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 - это файлы, которые нужно исключить. Второй аргумент - это время ожидания по истечении времени последнего доступа. Последний аргумент - это каталог для проверки.

Начиная с Fedora 18, /tmp установлен на tmpfs (т.е. 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 для получения более подробной информации по каждому случаю.

В 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

Еще лучше был бы хороший общий способ управления этим! (Что-то вроде «каждый день в 3 часа ночи, удаляйте все файлы / tmp старше 60 дней, но не очищайте каталог при перезагрузке»)

Файлы Sorta-tempy, которые вы не хотите очищать при загрузке, находятся в / var / tmp

Вот для чего :-)