Разумеется, дистрибутивы разные, но я ожидаю, что система будет автоматически управлять временными файлами автоматически. Скорее всего, они будут использовать либо задания cron, либо службу systemd-tmpfiles-clean. Если вы беспокоитесь о дисковом пространстве, это полезная команда, чтобы посмотреть, сколько места занимает каждая корневая папка:
du -hs /* | sort -h
Чтобы увидеть, использует ли ваша система сервис systemd для управления временными файлами, вы можете просто попробовать:
systemctl status systemd-tmpfiles-clean
Внизу вы увидите что-то вроде следующего, который сообщает вам, когда сервис последний раз запускался:
systemd-tmpfiles-clean.service - Cleanup of Temporary Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.service; static; vendor preset: disabled)
Active: inactive (dead) since Wed 2018-07-18 15:43:36 IST; 18h ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 30495 ExecStart=/usr/bin/systemd-tmpfiles --clean (code=exited, status=0/SUCCESS)
Main PID: 30495 (code=exited, status=0/SUCCESS)
Jul 18 15:43:36 host-name systemd[1]: Starting Cleanup of Temporary Directories...
Jul 18 15:43:36 host-name systemd[1]: Started Cleanup of Temporary Directories.
Обратите внимание, что эта служба выйдет, как только будет завершена очистка. Служба таймера отвечает за ее регулярное включение. Вы можете проверить это с:
systemctl status systemd-tmpfiles-clean.timer
И вы должны ожидать что-то вроде следующего:
systemd-tmpfiles-clean.timer - Daily Cleanup of Temporary Directories
Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static; vendor preset: disabled)
Active: active (waiting) since Tue 2018-07-03 10:56:59 IST; 2 weeks 1 days ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Jul 03 10:56:59 host-name systemd[1]: Started Daily Cleanup of Temporary Directories.
Jul 03 10:56:59 host-name systemd[1]: Starting Daily Cleanup of Temporary Directories.
Если вы снова посмотрите на реальную службу, ответственную за очистку файлов, вы увидите, что все, что она делает, это запускается:
/usr/bin/systemd-tmpfiles --clean
Таким образом, вы можете либо запустить эту команду напрямую, либо сделать это правильно, просто выполните:
systemctl start systemd-tmpfiles-clean
Который будет запускать соответствующую команду для вашей системы. Однако вы должны знать, что это не команда «удалить все временные файлы сейчас». Существует несколько файлов конфигурации, которые контролируют, что на самом деле удаляется и когда, чтобы приложения могли индивидуально настраивать свои временные файлы.
Одним из мест, где можно искать общую обработку временных файлов, может быть /usr/lib/tmpfiles.d/tmp.conf
следующее:
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d
Вы можете изменить их на более короткое время, если вашей системе не хватает места, например, на:
v /tmp 1777 root root 12h
v /var/tmp 1777 root root 1d
Чтобы быть уверенным в том, что вы делаете, man tmpfiles.d
прочитайте инструкцию. Опять же, я нашел подход, представленный здесь, актуальным для CentOS (на основе RedHat) и системы Ubuntu, но я не знаю много о других дистрибутивах.
/tmp
очищается после перезагрузки, но это зависит от установленной там файловой системы. Чтоdf -h
говорит?