Skrypt do porządkowania plików

Wygrabiony ogród żwirowy z kamieniami

Katalogi rosną same. Skrypt sprzątający jest prosty do napisania i wyjątkowo groźny, jeśli pomyli się w regule.

Co zwykle zajmuje miejsce

  • pliki tymczasowe po przetwarzaniu,
  • wygenerowane wydruki i zestawienia,
  • kopie robione ręcznie przed zmianami,
  • miniatury i wersje pochodne zdjęć,
  • dzienniki zdarzeń bez rotacji.

Zanim powstanie reguła, warto zobaczyć rozkład: które katalogi ważą najwięcej i co w nich leży. Zdarza się, że całe miejsce zajmuje jeden folder z plikami sprzed lat, a sprzątanie reszty nie jest w ogóle potrzebne.

Warto też ustalić, kto te pliki tworzy. Jeśli katalog tymczasowy rośnie, bo aplikacja nie sprząta po przerwanych operacjach, to skrypt sprzątający leczy objaw. Czasem taniej jest poprawić źródło niż uruchamiać czyszczenie co noc.

Najpierw tryb próbny

Pierwsze uruchomienie wyłącznie z wypisaniem listy plików do usunięcia. To jedyny bezpieczny sposób sprawdzenia reguły.

Listę trzeba przejrzeć, a nie tylko policzyć. Wynik nieoczekiwanie krótki oznacza, że reguła nie łapie tego, co miała. Wynik zaskakująco długi oznacza, że łapie za dużo — i nigdy nie jest miłym odkryciem.

Reguła zawężająca

Katalog, wzorzec nazwy i wiek pliku łącznie. Sam wiek jako kryterium prędzej czy później usunie coś potrzebnego.

Uwaga na daty. Czas modyfikacji pliku zmienia się przy kopiowaniu i przenoszeniu, więc plik stary potrafi wyglądać na nowy, a nowy na stary. Jeśli reguła opiera się na wieku, trzeba wiedzieć, którą datę czyta i skąd ona pochodzi. Osobna pułapka to dowiązania i zamontowane zasoby sieciowe — skrypt schodzący w głąb katalogów może wyjść poza obszar, który miał sprzątać.

Pliki osierocone

Załącznik bez rekordu w bazie zwykle da się usunąć, ale sprawdzenie powiązania musi obejmować wszystkie miejsca, które mogą go używać.

Te same pliki bywają wskazywane z kilku tabel, z treści opisów albo z systemu zewnętrznego. Sprawdzenie jednej tabeli daje wynik pozornie jednoznaczny i całkowicie mylny. Lustrzane zagadnienie po stronie danych opisuje tekst o czyszczeniu bazy danych.

Kosz zamiast usunięcia

Przeniesienie do katalogu wydzielonego i usuwanie stamtąd po kilku tygodniach. Tańsze niż odtwarzanie z kopii.

Kosz musi leżeć na tym samym dysku, żeby przeniesienie było natychmiastowe, i musi mieć własny termin czyszczenia. Inaczej zamienia się w kolejny katalog, który rośnie bez końca. Przed pierwszym prawdziwym uruchomieniem obowiązuje sprawdzona kopia zapasowa obejmująca także pliki, nie samą bazę.

Dziennik

Zapis, co i kiedy zostało usunięte. Bez niego pytanie „gdzie się podział ten plik" pozostaje bez odpowiedzi.

Wystarczy nazwa, rozmiar, data i powód usunięcia. Przy pytaniu zgłoszonym po tygodniach to jedyne źródło, które pozwala odpowiedzieć bez zgadywania — i jedyne, które pokazuje, że reguła zaczęła obejmować coś nowego.