Scrip, aby usunąć pliki starsze niż 6 miesięcy

12

Konfigurowanie zadania crona raz w miesiącu w celu uruchomienia skryptu.

Skrypt polega na obracaniu pliku co miesiąc, ponieważ staje się on zbyt duży i zmienia nazwę starego. gdy plik jest starszy niż sześć miesięcy, chciałem go usunąć.

Chcę uruchomić ten skrypt raz w miesiącu. Czy to możliwe, aby usunąć stary?

Daj mi znać, jeśli nie jest to wystarczająco jasne.

Scott Marriott
źródło
11
Dlaczego nie po prostu użyć logrotate?
Michael Hampton
@ scottmarriott tak, pan Hampton ma rację, opisana przez ciebie funkcjonalność to właściwie dokładnie to, co robi Logrotate.
Bratchley
Tak, właśnie rzuciłem okiem na logrotate, który ma sens na zdrowie
Scott Marriott
@MichaelHampton powinieneś udzielić odpowiedzi.
evilsoup

Odpowiedzi:

20

Możesz zacząć od tego:

find /your/file -mtime +182 -exec rm {} +

Gdzie +182jest liczba dni.

ramonowski
źródło
Dzięki za to, mogłem się z tym pobawić, ale może Logrotate może być najlepszą opcją
Scott Marriott
@jordanm jakieś pomysły, dlaczego to nie zadziałało?
Scott Marriott
ApplicationServer / logs / TestClone01 $ ls -ltr total 3320 1048458 13 grudnia 09:46 SystemOut_12.12.13_09.46.29.log 28 maja 12:44 SystemOut.log.2013-05-28-12: 44: 52 71 30 maja 08: 57 SystemOut.log.2013-05-30-08: 57: 22 48432 30 maja 09:16 SystemOut.log no_env): / usr / websphere6 / was61TE_LV2 / ApplicationServer / logs / TestClone01 $ find SystemOut.log -mtime +1 - exec rm {} + find: 0652-083 Nie można wykonać :: Plik lub katalog w nazwie ścieżki nie istnieje.
Scott Marriott
Zmieniłem liczbę dni na 1
Scott Marriott
@scottmarriott Nie wszystkie wersje findwsparcia +/-dla -mtime. Jaki masz system operacyjny i wersję find?
jordanm
2

Możesz po prostu użyć logrotate. Jest już dostępny w większości systemów Linux, a wiele pakietów ma już wstępnie skonfigurowane skrypty logrotate lub możesz je ulepszyć lub napisać własny.

Michael Hampton
źródło