Очистка каталога /tmp — различия между версиями
Строка 27: | Строка 27: | ||
[Timer] | [Timer] | ||
− | OnBootSec= | + | OnBootSec=15min |
OnUnitActiveSec=1d | OnUnitActiveSec=1d | ||
Версия 11:23, 26 октября 2022
Настройки параметров очистки хранятся в файлах
/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 #Время срабатывания таймера задаётся относительно того времени, когда таймер, который должен быть активирован, был активирован в последний раз.
Пример содержимого /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.