tmpreaper je nástroj pro odstranění souborů, ke kterým není po určitou dobu přístup.
V desktopových distribucích Linuxu je to dobré pro čištění adresářů, jako je „~/Downloads“, kde se soubory shromažďují za určitou dobu.
V linuxových serverových distribucích je to dobré pro čištění starých souborů protokolu nebo záložních souborů, které již nejsou potřeba.
tmpreaper rekurzivně prohledává a odstraňuje soubory a adresáře, ke kterým se po určitou dobu nepřistupuje.
UPOZORNĚNÍ: Než nainstalujete tmpreaper a začnete si s ním hrát, ujistěte se, že rozumíte důsledkům spuštění tmpreaperu, protože z vašeho systému smaže všechny soubory, které odpovídají daným kritériím. NEPOUŽÍVEJTE tmpreaper na / (kořenový adresář), který by mohl smazat kritické soubory, které jsou nutné k udržení vašeho systému v chodu. Do programu tmpreaper není zabudována žádná ochrana, která by vám bránila ve spuštění v kořenovém adresáři, protože by bylo obtížné používat tmpreaper v chrootovaném prostředí.
1. Nainstalujte tmpreaper
Na systémech založených na debianu, jako je Ubuntu, použijte apt-get:
$ sudo apt-get install tmpreaper
V systémech založených na RPM, jako je CentOS a RedHat, použijte yum:
$ sudo yum -y install tmpreaper
Syntaxe příkazu Tmpreaper:
$ tmpreaper [options] <time_spec> <dirs>
2. Odebrat soubory, které jsou o N dní starší
Chcete-li odstranit soubory, které jsou o 5 dní starší, použijte jako časový údaj „5d“.
Například následující příkaz odstraní soubory ze složky ~/Downloads, ke kterým se za posledních 5 dní nepřistoupilo.
$ tmpreaper 5d ~/Downloads
3. Odebrat soubory, které nebyly změněny po dobu N dnů
Ve výchozím nastavení tmpreaper odstraní soubory na základě „Doby přístupu“. Můžete použít volbu „-m“, abyste řekli tmpreaperu, aby smazal soubory na základě „času úpravy“.
Následující příkaz vymaže soubory, které nebyly změněny po dobu 5 dnů ve složce Stažené soubory.
$ tmpreaper -m 5d ~/Downloads
Pro parametr time_spec
můžete také použít následující znaky- d – po dobu dnů
- h – po dobu hodin
- m – minuty
- s – na sekundy
4. Odeberte symbolické odkazy pomocí -s
Použijte volbu -s k odstranění symbolických odkazů, nejen souborů a adresářů.
Kromě vyčištění souborů a adresářů následující příkaz také vyčistí symbolické odkazy, které odpovídají daným časovým specifikacím.
$ tmpreaper -s 5h ~/Downloads
5. Odeberte všechny typy souborů pomocí -a Option
Použijte volbu -a k odstranění všech typů souborů, nejen běžných souborů, adresářů a symbolických odkazů.
$ tmpreaper -a 5m ~/Downloads
6. Proveďte Dryrun – Test na odstranění pomocí volby -t
Pomocí volby -t otestujte, jaké soubory budou smazány.
To je velmi užitečné, když to spouštíte proti důležitému adresáři a chcete přesně určit, jaké soubory budou smazány, než se skutečně odstraní.
Tato možnost neodstraní soubory.
$ tmpreaper -t 5d ~/Downloads (PID 5415) Pretending to clean up directory `/home/lakshmanan/Downloads'. (PID 5416) Pretending to clean up directory `.tmp_versions'. (PID 5416) Back from recursing down `.tmp_versions'.
7. Vynutit odstranění souborů pomocí volby -f
Použijte volbu -f k vynucení odstranění souborů. Soubory vlastněné aktuálním uživatelem (EUID) bez oprávnění pro zápis se normálně neodstraňují. Použití -f odstraní také tyto soubory.
$ tmpreaper -f 5h ~/Downloads
8. Neodstraňujte soubory odpovídající vzoru pomocí možnosti –protect
Použijte –protect ‘
Například následující příkaz odstraní všechny soubory kromě souborů „.c“.
$ tmpreaper --protect '*.c' -t 5h ~/my_prg Entry matching `--protect' pattern skipped. `hello.c' Pretending to remove file `./.hello.o'.
9. Použití tmpreaper v Cronu
Ve výchozím nastavení se při instalaci tmpreaper vloží záznam do crontab ( /etc/cron.daily/tmpreaper ). Přečte volby z /etc/tmpreaper.conf a provede příkaz tmpreaper na základě těchto voleb.
/etc/tmpreaper.conf je samovysvětlující a snadno pochopitelný. Ve výchozím nastavení odstraní soubory, které jsou v /tmp staré 7 dní, očekávají se některé typy souborů. Pokud to plánujete použít, odeberte řádek ‚SHOWVARNING=true‘ z /etc/tmpreaper.conf.
Jakmile je řádek odstraněn, tmpreaper bude denně běžet, aby vyčistil zadané adresáře bez zásahu uživatele.