Jak usunąć pliki lub foldery starsze niż 30 dni w BASH
Usuwanie starych plików i folderów jest niezbędne do utrzymania porządku i wolnego miejsca na dysku w systemach Linux. W tym poradniku pokażemy, jak za pomocą prostych komend w BASH usunąć pliki i foldery starsze niż 30 dni. Postępuj zgodnie z poniższymi krokami, aby zautomatyzować ten proces.
1. Wprowadzenie
BASH, czyli Bourne Again SHell, to popularna powłoka systemu Unix/Linux. Pozwala na wykonywanie skryptów i automatyzację wielu zadań, w tym zarządzanie plikami. Usuwanie starych plików za pomocą BASH jest prostym i skutecznym sposobem na utrzymanie porządku w systemie.
2. Znalezienie plików starszych niż 30 dni
Zanim zaczniemy usuwać pliki, musimy je zlokalizować. Do tego celu użyjemy komendy find, która jest bardzo potężna i elastyczna.
find /sciezka/do/katalogu -type f -mtime +30
Wyjaśnienie parametrów:
/sciezka/do/katalogu: Ścieżka do katalogu, w którym chcesz szukać plików.
-type f: Szukaj tylko plików (nie katalogów).
-mtime +30: Znajdź pliki, które były modyfikowane ponad 30 dni temu.
3. Usuwanie plików starszych niż 30 dni
Po upewnieniu się, że komenda find działa poprawnie i zwraca odpowiednie pliki, możemy dodać komendę -delete, aby usunąć te pliki:
find /sciezka/do/katalogu -type f -mtime +30 -delete
Ostrzeżenie: Komenda -delete nie pyta o potwierdzenie. Upewnij się, że ścieżka i warunki są poprawne, aby uniknąć przypadkowego usunięcia ważnych plików.
4. Usuwanie pustych katalogów
Jeśli chcesz również usuwać puste katalogi, możesz użyć następującej komendy:
find /sciezka/do/katalogu -type d -empty -delete
Wyjaśnienie parametrów:
-type d: Szukaj katalogów.
-empty: Znajdź puste katalogi.
5. Automatyzacja za pomocą crontab
Aby zautomatyzować ten proces, możemy dodać naszą komendę do crontab. Crontab to systemowy harmonogram zadań w Unix/Linux, który pozwala na uruchamianie skryptów w określonych odstępach czasu.
Otwórz edytor crontab:
crontab -e
Dodaj poniższą linię, aby uruchamiać skrypt codziennie o północy:
0 0 * * * find /sciezka/do/katalogu -type f -mtime +30 -delete
6. Usuwanie plików i katalogów jednocześnie
Jeśli chcesz usunąć zarówno pliki, jak i puste katalogi jednocześnie, możesz użyć poniższego skryptu:
#!/bin/bash
find /sciezka/do/katalogu -type f -mtime +30 -delete
find /sciezka/do/katalogu -type d -empty -delete
Zapisz powyższy skrypt jako cleanup.sh, nadaj mu prawa do wykonania i dodaj do crontab:
chmod +x cleanup.sh
crontab -e
Dodaj poniższą linię do crontab, aby uruchamiać skrypt codziennie o północy:
0 0 * * * /sciezka/do/skryptu/cleanup.sh
7. Podsumowanie
Usuwanie starych plików i pustych katalogów jest prostym sposobem na utrzymanie porządku w systemie Linux. Dzięki powyższym komendom i wskazówkom możesz łatwo zautomatyzować ten proces za pomocą BASH i crontab. Pamiętaj jednak, aby zawsze dokładnie sprawdzać ścieżki i warunki przed usunięciem plików, aby uniknąć przypadkowego usunięcia ważnych danych.