В linux часто копится мусор: временные файлы, старые логи, кэш сервисов. Многие чистят это вручную или пишут свои крон-скрипты. Но в современных дистрибутивах есть встроенный механизм -
systemd-tmpfiles. Он автоматически создает, удаляет и очищает файлы и каталоги по заданным правилам.▪️ Что умеет tmpfiles.d. Systemd-tmpfiles читает конфиги из
/usr/lib/tmpfiles.d/, /run/tmpfiles.d/ и /etc/tmpfiles.d/.Через них можно:
очищать каталоги по времени (30 дней, 12 часов и т.п.);
ограничивать размер директорий;
автоматически создавать нужные файлы с правами и владельцами;
удалять мусор после перезагрузки;
управлять содержимым
/tmp, /var/tmp, /var/log и любых других путей.▪️ Простой пример: удаляем старые файлы
Создадим конфиг:
/etc/tmpfiles.d/cleanup.conf
И добавим правило:
# Удалять файлы старше 14 дней
D /var/tmp/mycache 0755 root root 14d
Типы команд:
D - очистка каталога, не удаляя его самого;
d - удалить и пересоздать;
R - рекурсивная очистка.
После применения правила:
systemd-tmpfiles --clean
Можно запускать вручную или ждать автоматического выполнения таймером systemd.
▪️ Автоматическая очистка
/tmp. В большинстве дистрибутивов это уже настроено, но можно задать свои параметры:
d /tmp 1777 root root 7d
Файлы старше 7 дней будут удалены.
▪️ Ограничение размера каталога. Пусть кэш не разрастается:
q /var/cache/nginx 500M
Тип q ограничивает каталог 500 мегабайтами, старые файлы будут удаляться первыми.
▪️ Проверка своих правил. Перед применением:
systemd-tmpfiles --verify
#linux #files
🧑💻 NetworkAdmin