🢂💻 Regularne czyszczenie folderu ‑ sposób z systemd‑tmpfiles
Systemd ma usługę systemd-tmpfiles, która automatycznie usuwa stare pliki z określonych katalogów. Dzięki temu cache się nie rozrasta.
Jak to działa
Systemd ma usługę systemd-tmpfiles, która automatycznie usuwa stare pliki z określonych katalogów. Dzięki temu cache się nie rozrasta, ale dalej działa z dysku (czyli aplikacje nie muszą budować wszystkiego od zera przy każdym restarcie).
Jak to zastosować
1. Stwórz plik konfiguracyjny
sudo nano /etc/tmpfiles.d/your-service.conf
W pliku konfiguracyjnym możesz określić katalogi, które mają być czyszczone, np.:
D /var/cache/your-service 0755 your-user your-group 7d
W powyższym przykładzie:
Doznacza, że jest to katalog/var/cache/your-servicejest ścieżką do katalogu0755to uprawnieniayour-userto użytkownikyour-groupto grupa7d– pliki starsze niż 7 dni będą usuwane (możesz zmienić na1d,30d, itd.).
1.1 Uruchom ręczne czyszczenie (test):
sudo systemd-tmpfiles --create /etc/tmpfiles.d/your-service.conf
Sprawdź czy działa
Wygląda, że pytasz: jak sprawdzić, czy systemd-tmpfiles jest uruchomione i czy działa dla reguły czyszczącej ~/.cache. Poniżej masz krótką checklistę z komendami.
Czy reguła jest widoczna i poprawna
# pokaż wszystkie wczytane pliki konfiguracyjne i sprawdź, czy widać swami-cache.conf
systemd-tmpfiles --cat-config | grep -n your-service.conf
Czy działa timer i usługa
# status timera uruchamiającego czyszczenie
systemctl status systemd-tmpfiles-clean.timer
# kiedy ostatnio i kiedy następny raz się uruchomi
systemctl list-timers | grep tmpfiles
# status samej usługi "clean"
systemctl status systemd-tmpfiles-clean.service
Jeśli timer jest wyłączony:
sudo systemctl enable --now systemd-tmpfiles-clean.timer
Suchy test (bez kasowania)
sudo systemd-tmpfiles --clean --verbose --noop /etc/tmpfiles.d/your-service.conf
noopwykona„dry-run”: pokaże, co by usunął, ale niczego nie skasuje.verbosewypisze szczegóły.
Logi z działania
# dzisiejsze logi usługi czyszczącej
journalctl -u systemd-tmpfiles-clean --since "today"
# logi z ostatnich 24 godzin
journalctl -u systemd-tmpfiles-clean --since "24 hours ago"
Wynik powinien być podobny do tego
Aug 27 08:43:49 laptop systemd[1]: Starting systemd-tmpfiles-clean.service - Cleanup of Temporary Directories...
Aug 27 08:43:49 laptop systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
Aug 27 08:43:49 laptop systemd[1]: Finished systemd-tmpfiles-clean.service - Cleanup of Temporary Directories.
-- Boot d5d02902c1324298bc78c1afc99db608 --
Aug 27 16:29:25 laptop systemd[1]: Starting systemd-tmpfiles-clean.service - Cleanup of Temporary Directories...
Aug 27 16:29:25 laptop systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
Aug 27 16:29:25 laptop systemd[1]: Finished systemd-tmpfiles-clean.service - Cleanup of Temporary Directories.
-- Boot 770e3a855b574176840c1b59bcdba86a --
Aug 27 17:22:41 laptop systemd[1]: Starting systemd-tmpfiles-clean.service - Cleanup of Temporary Directories...
Aug 27 17:22:41 laptop systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
Aug 27 17:22:41 laptop systemd[1]: Finished systemd-tmpfiles-clean.service - Cleanup of Temporary Directories.
Co do czego
W systemie Linux cache jest często używany do przechowywania danych, które są często używane, aby zwiększyć wydajność systemu. Systemd-tmpfiles jest narzędziem, które automatycznie usuwa stare pliki z określonych katalogów, aby uniknąć rozrastania się cacheu.