E
_Emma_
Original poster

Многие системы ОС LINUX используют очень много временных файлов и каталогов,которые служат для оптимальной работы.
Все эти временные файлы используют гигабайты пространства на диске,если не были очищены.
Этим мы и займёмся.Нужно очистить старые файлы,дабы освободить дисковое пространство.
Приложения и пользователи,используется папка / tmp для хранения временных данных,в то время как другие будут использовать более специфичное для задачи расположение, такое как изменяемые каталоги в / run.
Изменяемые - файлы находятся только в памяти.
Если случился сбой в питание или система перезагружается,файлы энергозависимого хранилища будет удалено.
Автоматизируем удаление временных файлов
В новых версиях Linux`а добавлен новый инструмент systemd-tmpfiles.
Он даёт структурированный и настраиваемый метод для управления временными файлами
Командой ниже мы можем проверить запущена ли служба
$ systemctl status systemd-tmpfiles-*
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup.service; static; vendor preset: disabled)
Active: active (exited) since Mon 2020-02-10 08:27:50 EAT; 1 weeks 3 days ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 794 ExecStart=/usr/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
Main PID: 794 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/systemd-tmpfiles-setup.service
Feb 10 08:27:50 envoy-nginx.novalocal systemd[1]: Starting Create Volatile Files and Directories...
Feb 10 08:27:50 envoy-nginx.novalocal systemd[1]: Started Create Volatile Files and Directories.
● systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-setup-dev.service; static; vendor preset: disabled)
Active: active (exited) since Mon 2020-02-10 08:27:49 EAT; 1 weeks 3 days ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 553 ExecStart=/usr/bin/systemd-tmpfiles --prefix=/dev --create --boot (code=exited, status=0/SUCCESS)
Main PID: 553 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/systemd-tmpfiles-setup-dev.service
Feb 10 08:27:49 envoy-nginx.novalocal systemd[1]: Starting Create Static Device Nodes in /dev...
Feb 10 08:27:49 envoy-nginx.novalocal systemd[1]: Started Create Stati
Команду systemd-tmpfiles –create –remove запускает сервисный модуль systemd-tmpfiles-setup
Файлы конфигурацией можно проверить командой выше
- /usr/lib/tmpfiles.d/.conf
- /run/tmpfiles.d/.conf
- /etc/tmpfiles.d/*.conf
Модуль systemd timer с именем systemd-tmpfiles-clean.timer регулярно запускает службу systemd-tmpfiles-clean.service, которая затем выполняет команду systemd-tmpfiles –clean.
Как часто сервис будет запускаться можно настроить в раздели Timer
Предоставляю пример ниже
$ cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
# 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.
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
Выше показано что systemd-tmpfiles-clean.service будет активирован после 15 минут после загрузки.
Другие запуски системы будут через сутки после последнего запуска
Настроить вы можете как угодно
При внесение изменение, перезагрузите сервис
sudo systemctl daemon-reload
sudo systemctl enable --now systemd-tmpfiles-clean.timer
Как очистить временные файлы вручную
Настроим systemd-tmpfiles для того чтобы очистить католог /mytmp
Это обеспечит отсутствие в каталоге файлов, которые не использовались в течение последних 3 дней.
Вы можете скопировать пример файла конфигурации и обновить его — /usr/lib/tmpfiles.d/tmp.conf
Нужно отредактировать файл,пример ниже
$ sudo vim /etc/tmpfiles.d/mytmp.conf
See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
q /mytmp 1777 root root 3d
Требуется создать конфигурацию как показано ниже для того чтобы убедиться что каталог с правильно назначенным владельцем
d /run/mytmp 0700 root root 60s
Файлы в этом каталоге,которые не будут использованы в течении минуты будут очищены.
Следущим действием после создания файла используем эту команду для того чтоб убедиться что мы сделали всё правильно
sudo systemd-tmpfiles --create /etc/tmpfiles.d/mytmp.conf
Если не вспылили различные ошибке в ответе,то всё сделано правильно
Ручную очистку можно вызвать следущей командой.
systemd-tmpfiles --clean /etc/tmpfiles.d/mytmp.conf
Хотела бы предоставить справочные страницы,там вы можете получить более подробную информацию.
- tmpfiles.d (5)
- systemd-tmpfiles (8),
- systemd.timer (5)