Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Skasowanie plików starszych niż tydzień i cron

294 views
Skip to first unread message

mic49

unread,
Sep 9, 2008, 3:23:05 PM9/9/08
to
Witajcie,

Nie wiem, jak zrobić, aby za pomocą crona (raz dziennie) kasować pliki
starsze niż tydzień z podanego katalogu. Proszę o podpowiedź,

Michał

Dominik & Co

unread,
Sep 10, 2008, 2:24:51 AM9/10/08
to
mic49 napisał(a):

> Nie wiem, jak zrobić, aby za pomocą crona (raz dziennie) kasować pliki
> starsze niż tydzień z podanego katalogu. Proszę o podpowiedź,

Na przykład zrobić taki skrypt:

find /home/user/data -ctime +7 -exec rm -f {} \;

Przetestować, wgrać gdzieś, wpisać nazwę ze ścieżką do crontaba.

--
Dominik (& kąpany)
"Wszyscy chcą naszego dobra. Nie dajmy go sobie zabrać." (Stanisław Jerzy Lec)
Wyrażam wyłącznie prywatne poglądy, do czego mam prawo zgodnie z Art. 54 Konstytucji RP

Mirosław Zalewski

unread,
Sep 10, 2008, 6:01:56 AM9/10/08
to
wrzesień roku pamiętnego 2008, prawdopodobnie 10. Wielka mądrość na
czytelników alt.pl.comp.os.linux.newbie spłynęła, gdy tako rzekł(a)
Dominik & Co:

> mic49 napisał(a):
>
> > Nie wiem, jak zrobić, aby za pomocą crona (raz dziennie) kasować
> > pliki starsze niż tydzień z podanego katalogu. Proszę o podpowiedź,
>
> Na przykład zrobić taki skrypt:
>
> find /home/user/data -ctime +7 -exec rm -f {} \;

^^^^^^^^^^^^^^
-delete

> Przetestować, wgrać gdzieś, wpisać nazwę ze ścieżką do crontaba.

Jeżeli mają to być pliki starsze niż tydzień, osobiście użyłbym
anacrona.

Anacron, co zresztą wskazuje sama nazwa, jest podobny do crona. O ile
jednak cron zakłada, że pewne zadania muszą być wykonane w pewnym
określonym terminie, o tyle anacron wychodzi z założenia, że pewne
zadania muszą być wykonywane cyklicznie, np. raz w tygodniu. Stąd
cron nadaje się na serwery lub inne maszyny o wysokim średnim uptime,
podczas gdy anacron wspaniale spełnia swoje zadanie na zwykłych
desktopach, co do których nie można przewidzieć kiedy i jak długo będą
włączone.

Niezbyt rozbudowana strona projektu znajduje się pod adresem
http://anacron.sourceforge.net/ .
--
Niżej podpisany, zamieszkały w http://minio.xt.pl ,
Mirosław Zalewski

Dominik & Co

unread,
Sep 10, 2008, 6:39:00 AM9/10/08
to
Mirosław Zalewski napisał(a):

>> find /home/user/data -ctime +7 -exec rm -f {} \;
> ^^^^^^^^^^^^^^
> -delete

W sensie, że tamto źle, czy alternatywa?

BTW: -delete nie wyłoży się na plikach read-only?

> Jeżeli mają to być pliki starsze niż tydzień, osobiście użyłbym
> anacrona.

Fakt.

Mirosław Zalewski

unread,
Sep 10, 2008, 7:19:50 AM9/10/08
to
wrzesień roku pamiętnego 2008, prawdopodobnie 10. Wielka mądrość na
czytelników alt.pl.comp.os.linux.newbie spłynęła, gdy tako rzekł(a)
Dominik & Co:

> Mirosław Zalewski napisał(a):


>
> >> find /home/user/data -ctime +7 -exec rm -f {} \;
> > ^^^^^^^^^^^^^^
> > -delete
>
> W sensie, że tamto źle, czy alternatywa?

Alternatywa o tyle, że efekt działania będzie identyczny¹. Lepsze o
tyle, że wykorzystuje instrukcje wbudowane w find, bez uruchamiania
innych programów.

Sprawa czysto subiektywna.

¹ — identyczny póki pracuje na plikach. -delete usunie (pod)katalogi
jeżeli będą puste (najpierw usuwa wszystkie w nich pliki pasujące do
wzorca); -exec rm -f {} usunie tylko pliki, pozostawiając katalogi.

> BTW: -delete nie wyłoży się na plikach read-only?

Nie.

Dominik & Co

unread,
Sep 10, 2008, 8:23:42 AM9/10/08
to
Mirosław Zalewski napisał(a):

> ¹ — identyczny póki pracuje na plikach. -delete usunie (pod)katalogi
> jeżeli będą puste (najpierw usuwa wszystkie w nich pliki pasujące do
> wzorca); -exec rm -f {} usunie tylko pliki, pozostawiając katalogi.

Dzięki za wyjaśnienie.

0 new messages