Очистка каталога /tmp

Материал из Wiki AlterOS
Перейти к: навигация, поиск


Настройки параметров очистки хранятся в файле, таймере и службе:

/usr/lib/tmpfiles.d/tmp.conf
/usr/lib/systemd/system/systemd-tmpfiles-clean.timer
/usr/lib/systemd/system/systemd-tmpfiles-clean.service


Настройки по умолчанию:

удаление файлов/каталогов в /tmp, к которым не обращались более 10 дней (определено в tmp.conf)
удаление файлов/каталогов в /var/tmp, к которым не обращались более 30 дней(определено в tmp.conf)
маски файлов, которые не будут удалены(определено в tmp.conf)

Для ручного удаления используется команда

/usr/bin/systemd-tmpfiles –clean # (определено в systemd-tmpfiles-clean.service)

В файле /usr/lib/systemd/system/systemd-tmpfiles-clean.timer задается время срабатывания очистки:

[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d

Описание опций:

OnBootSec=15min # Время срабатывания таймера задаётся относительно момента загрузки системы.
OnUnitActiveSec=1d  #Время срабатывания таймера задаётся относительно того времени, когда таймер, который должен быть активирован, был активирован в последний раз.

Таким образом очистка выполняется либо через 15 минут после загрузки системы или по прошествии 1 дня с момента предыдущей очистки.

Пример содержимого /usr/lib/tmpfiles.d/tmp.conf

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp


Таким образом, файлы и папки в каталоге /tmp к которым не обращались 10 дней будут попадать под критерии очистки

Файлы и папки в каталоге /var/tmp к которым не обращались 30 дней будут попадать под критерии очистки

Для проверки, по какой причине файлы в каталоге не удаляются по прошествии времени из файлов конфигурации, можно воспользоваться командой от пользователя с правами root

SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

В ответ получим информацию об очистке и причинах по которым файлы и каталоги не удалены в системе, например:

File "/tmp/anydesk/ad_mailbox_3650_0_0_evt_subevt_0": modify time Tue 2022-10-25 15:15:55.970764 MSK is too new.