Автоматическое удаление неиспользуемых временных файлов

Thank you for reading this post, don't forget to subscribe!

В боль­шин­стве совре­мен­ных систем Linux для опти­маль­ной рабо­ты тре­бу­ет­ся боль­шое коли­че­ство вре­мен­ных фай­лов и каталогов.

В сово­куп­но­сти они могут потреб­лять гига­бай­ты дис­ко­во­го про­стран­ства, если их не чистить.

Поэто­му необ­хо­ди­мо очи­щать ста­рые фай­лы, что­бы они не запол­ня­ли дис­ко­вое пространство.

Неко­то­рые пользователи/приложения будут исполь­зо­вать ката­лог /tmp для хра­не­ния вре­мен­ных дан­ных, в то вре­мя как дру­гие исполь­зу­ют более спе­ци­фич­ное для зада­чи рас­по­ло­же­ние, как напри­мер изме­ня­е­мые ката­ло­ги в /run.

Изме­ня­е­мые озна­ча­ет, что фай­лы суще­ству­ют толь­ко в памяти.

Если систе­ма пере­за­гру­жа­ет­ся или про­ис­хо­дит сбой пита­ния, все содер­жи­мое энер­го­за­ви­си­мо­го хра­ни­ли­ща будет удалено.

Как автоматически очищать неиспользуемые временные файлы в Linux

В Red Hat Enterprise Linux 7 и новее вклю­чен новый инстру­мент под назва­ни­ем systemd-tmpfiles.

Этот инстру­мент предо­став­ля­ет струк­ту­ри­ро­ван­ный и настра­и­ва­е­мый метод для управ­ле­ния вре­мен­ны­ми ката­ло­га­ми и файлами.

Вы може­те про­ве­рить запу­ще­на ли служ­ба с помо­щью команды:

Когда сер­вис­ный модуль systemd-tmpfiles-setup запус­ка­ет­ся, он запус­ка­ет коман­ду systemd-tmpfiles –create –remove.
Коман­да про­ве­ря­ет фай­лы кон­фи­гу­ра­ции из:
  • /usr/lib/tmpfiles.d/.conf
  • /run/tmpfiles.d/.conf
  • /etc/tmpfiles.d/*.conf
Если в ука­зан­ных выше фай­лах кон­фи­гу­ра­ции есть фай­лы и ката­ло­ги, поме­чен­ные для уда­ле­ния, они будут удалены.
Фай­лы и ката­ло­ги, поме­чен­ные для созда­ния созда­ют­ся с пра­виль­ны­ми раз­ре­ше­ни­я­ми, если это необходимо.

Как очистить временные файлы с помощью Systemd Timer

Модуль systemd timer с име­нем systemd-tmpfiles-clean.timer регу­ляр­но запус­ка­ет служ­бу systemd-tmpfiles-clean.service, кото­рая затем выпол­ня­ет коман­ду systemd-tmpfiles –clean.

Вы буде­те ука­зы­вать, как часто сер­вис дол­жен запус­кать­ся в раз­де­ле [Timer].

Смот­ри­те при­мер, пока­зан­ный ниже.

В при­ве­ден­ном выше при­ме­ре systemd-tmpfiles-clean.service будет запу­щен через 15 минут после загруз­ки системы.
Любой дру­гой запуск про­ис­хо­дит через 24 часа после послед­не­го запус­ка службы.

Вы може­те настро­ить зна­че­ния по сво­е­му усмотрению.

Если вы вно­си­те изме­не­ния, убе­ди­тесь, что вы пере­за­гру­зи­ли сервис.

Как очистить временные файлы вручную

Давай­те настро­им systemd-tmpfiles для очист­ки ката­ло­га /mytmp.

Это обес­пе­чит отсут­ствие в ката­ло­ге фай­лов, кото­рые не исполь­зо­ва­лись в тече­ние послед­них 3 дней.

Вы може­те ско­пи­ро­вать при­мер фай­ла кон­фи­гу­ра­ции и обно­вить его — /usr/lib/tmpfiles.d/tmp.conf

Отре­дак­ти­руй­те файл как пока­за­но ниже.

Если вы хоти­те убе­дить­ся, что ката­лог суще­ству­ет с пра­виль­но назна­чен­ным вла­дель­цем, создай­те кон­фи­гу­ра­цию, как пока­за­но ниже.

Любой файл в этом ката­ло­ге, кото­рый оста­ет­ся неис­поль­зо­ван­ным в тече­ние послед­них 60 секунд, дол­жен быть очищен.

После созда­ния фай­ла исполь­зуй­те сле­ду­ю­щую коман­ду, что­бы убе­дить­ся, что файл содер­жит соот­вет­ству­ю­щую конфигурацию.

Если вы не види­те ника­ких оши­бок в выво­де, это под­твер­жда­ет пра­виль­ность настро­ек конфигурации.
Вы може­те вызвать руч­ную очист­ку в любое вре­мя с помо­щью команды:
Обра­ти­тесь к сле­ду­ю­щим спра­воч­ным стра­ни­цам для полу­че­ния более подроб­ной информации.
  • tmpfiles.d (5)
  • systemd-tmpfiles (8),
  • systemd.timer (5)