[bash] Kasowanie plików starszych niż x dni

Jeśli chcemy skasować pliki starsze niż dana liczba dni możemy użyć w tym celu polecenia [b]find[/b] [code=bash]find /usr/backups/mysql/ -name ‘.gz’ -ctime +30 -delete[/code] [b]/usr/backups/mysql/[/b] - to katalog w którym będą wyszukiwane pliki do skasowania [b]-name ‘.gz’[/b] - określa nam wzorzec nazwy plików, których szukamy. Zostaną skasowane pliki o dowolnej nazwie i rozszerzeniu .gz [b]-ctime +30[/b] - określa nam, że szukamy plików starszych niż 30 dni. Możemy zmienić tą wartość na taką jak nam odpowiada np.

Jeśli chcemy skasować pliki starsze niż dana liczba dni możemy użyć w tym celu polecenia [b]find[/b] [code=bash]find /usr/backups/mysql/ -name ‘.gz’ -ctime +30 -delete[/code] [b]/usr/backups/mysql/[/b] - to katalog w którym będą wyszukiwane pliki do skasowania [b]-name ‘.gz’[/b] - określa nam wzorzec nazwy plików, których szukamy. Zostaną skasowane pliki o dowolnej nazwie i rozszerzeniu .gz [b]-ctime +30[/b] - określa nam, że szukamy plików starszych niż 30 dni. Możemy zmienić tą wartość na taką jak nam odpowiada np. 7 dni. [b]-delete[/b] - parametr ten określa, że wyszukane pliki mają być skasowane. Polecenie kasuje pliki bez pytania o potwierdzenie. Jeśli nie podamy tego parametru to po prostu na wyjście zostanie nam wyświetlona lista szukanych plików czyli lista plików starszych niż 30 dni. Warto przed pierwszym wykonaniem skryptu wywołać polecenie bez parametru -delete aby zobaczyć czy faktycznie znalezione pliki to te, które chcemy skasować.

Powyższy kod może się przydać do kasowania kopii baz danych składowanych na serwerze. Dzięki temu kopie starsze niż 30 dni będą automatycznie kasowane.

Oczywiście aby tak się działo musimy nasz kod skryptu zapisać w pliku .sh i wrzucić na serwer oraz ustawić jak często ma być on wykonywany przez cron. :)