Звичайно, дистрибуції різні, але я очікую, що тимчасові файли будуть автоматично керуватися системою поза вікном. Вони, ймовірно, будуть використовувати або завдання cron, або службу очищення systemd-tmpfiles. Якщо ви турбуєтесь про місце на диску, це корисна команда, щоб переглянути, скільки місця займає кожна коренева папка:
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
говорить?