Вопрос: Когда / tmp очищается?


Я беру /tmp, и я задавался вопросом о правилах их удаления?

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

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

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


112
2018-04-06 15:09


Источник




Ответы:


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

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

122
2018-04-06 15:12



И независимо от того, когда это произойдет, единственный безопасный момент, как правило, при загрузке, сразу после его установки, поскольку в запущенных процессах могут быть заблокированы файлы, и их не следует удалять. - adaptr
Существуют также доступные пакеты, которые могут периодически удалять их. - Samuel Edwin Ward
В RedHat-подобных системах с systemd (centos7 / rhel7) он настроен в /usr/lib/tmpfiles.d/tmp.conf. Он называется целевым объектом systemd systemd-tmpfiles-clean.service, - Franklin Piat
На устаревшем Debian вы можете рассмотреть tmpreaper пакет, это разветвленная версия tmpwatch, - Věroš K.


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

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

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


22
2018-04-06 16:01



У меня нет этого на CentOS 7.4. - Kevin Lemaire
@KevinLemaire. Функциональность была перенесена в службу systemd. lists.centos.org/pipermail/centos/2014-October/147155.html - cjc


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


11
2018-04-06 15:31





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


4
2018-05-29 21:31





Из Fedora 18, /tmp монтируется на tmpfs (то есть ОЗУ) по умолчанию и, таким образом, стирается при выключении питания.

Такое поведение можно отключить, выпуская 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 для получения более подробной информации о каждом случае.


4
2018-01-10 14:15





В 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 и перейдите в Систему -> / etc / sysconfig Редактор -> Система -> Cron

3
2017-11-15 13:45





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

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

Вот что это за :-)


2
2018-04-07 05:01