Discussion:
cron vs. anacron
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
ppp
2009-12-07 16:34:29 UTC
Permalink
Prosze o wytlumaczenie czy dobrze rozumiem dzialanie anacrona. Mam taki
wpis w crontab:

5 1 * * * /home/user/bin/skrytp.sh &> /dev/null

czyli codziennie o 1:05 ma zostac wykonany ten skrypt. Chce uzyc anacrona,
aby wykonal ten skrypt zaraz po uruchomieniu kompa, gdy ten na przyklad
byl wylaczony o tej godzinie i cron nie wykonal tego zadania. Czy wlasnie
tak dziala anacron i czy da sie przy jego pomocy to osiagnac?

Pozdrawiam
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Jacek Kalinski
2009-12-07 16:59:02 UTC
Permalink
Post by ppp
Prosze o wytlumaczenie czy dobrze rozumiem dzialanie anacrona. Mam taki
5 1 * * * /home/user/bin/skrytp.sh &> /dev/null
czyli codziennie o 1:05 ma zostac wykonany ten skrypt. Chce uzyc anacrona,
aby wykonal ten skrypt zaraz po uruchomieniu kompa, gdy ten na przyklad
byl wylaczony o tej godzinie i cron nie wykonal tego zadania. Czy wlasnie
tak dziala anacron i czy da sie przy jego pomocy to osiagnac?
Proponuję użyć /etc/rc.local /etc/rc.d/rc.local lub innego.
I w nim po uruchomieniu komputera uruchomić skrypt.

Nie słyszałem, żeby jakikolwiek cron posiadał funkcjonalność
wykonywania zaległych zadań. Ale i nie szukałem/potrzebowałem
takiej funkcji.

Jacek
Jan Stożek
2009-12-07 19:36:58 UTC
Permalink
Po głębokim namyśle Jacek Kalinski napisał w poniedziałek, 7 grudnia
Post by Jacek Kalinski
Post by ppp
5 1 * * * /home/user/bin/skrytp.sh &> /dev/null
czyli codziennie o 1:05 ma zostac wykonany ten skrypt. Chce uzyc
anacrona, aby wykonal ten skrypt zaraz po uruchomieniu kompa, gdy
ten na przyklad byl wylaczony o tej godzinie i cron nie wykonal
tego zadania. Czy wlasnie tak dziala anacron i czy da sie przy jego
pomocy to osiagnac?
Proponuję użyć /etc/rc.local /etc/rc.d/rc.local lub innego.
I w nim po uruchomieniu komputera uruchomić skrypt.
Nie słyszałem, żeby jakikolwiek cron posiadał funkcjonalność
wykonywania zaległych zadań. Ale i nie szukałem/potrzebowałem
takiej funkcji.
Nie wiem, jak jest w innych dystrybucjach, ale w OpenSUSE są foldery:

cron.daily
cron.hourly
cron.monthly
cron.weekly

które właśnie do tego służą w połączeniu ze znacznikami czasu
wykonania w /var/spool/cron/lastrun.

Mechanizm co prawda nie gwarantuje, że skrypt zostanie wykonany o
konkretnej godzinie, ale za to gwarantuje, że zaległe skrypty zostaną
wykonane po włączeniu komputera. System używa tego m.in. do rotowania
logów, odpalania indeksowania, robienia backupów itp.

Implementacja jest IMHO dość prosta i sprowadza się do odpalania co
kwadrans skryptu, który sprawdza, czy przyszła pora na wykonanie
zadań - i je ewentualnie wykonuje.
--
Pozdrawiam,

(js).

PS. Odpowiadając bezpośrednio proszę usunąć minus wraz ze
wszystkimi kolejnymi literami.
Mirosław Zalewski
2009-12-07 19:30:50 UTC
Permalink
grudzień roku pamiętnego 2009, prawdopodobnie 07. Wielka mądrość na
Post by ppp
Prosze o wytlumaczenie czy dobrze rozumiem dzialanie anacrona. Mam
5 1 * * * /home/user/bin/skrytp.sh &> /dev/null
czyli codziennie o 1:05 ma zostac wykonany ten skrypt. Chce uzyc
anacrona, aby wykonal ten skrypt zaraz po uruchomieniu kompa, gdy ten
na przyklad byl wylaczony o tej godzinie i cron nie wykonal tego
zadania. Czy wlasnie tak dziala anacron i czy da sie przy jego pomocy
to osiagnac?
Tobie jest potrzebne coś pomiędzy cronem a anacronem.

cron ma tablicę kiedy ma wykonywać dane zadanie. Jeśli jest wtedy
uruchomiony, zrobi to. Jeśli nie — trudno. Dlatego przez tymczasowe
wyłączenie serwera spowodowane kilkugodzinną przerwą w dostawie prądu
może nie wykonać się jakieś krytyczne zadanie które ma się wykonywać
raz do roku — i jeżeli administrator nie wykona go ręcznie, coś może
się bardzo popsuć.

anacron z kolei ma znacznie luźniejsze podejście do czasu. Uznaje on,
że pewne zadania muszą być wykonywane cyklicznie. Nie zakłada się, że
komputer jest włączony na stałe. Jeśli jakieś zadanie ma być wykonywane
raz na tydzień i zostało wykonane w sobotę, po czym wyjechałeś na
weekend i komputer włączyłeś dopiero w poniedziałek, anacron sprawdza
kiedy zadanie ostatnio zostało wykonane a następnie sprawdza jak często
ma być wykonywane. Jeżeli wyjdzie mu że ostatnio zostało wykonane
dawniej niż powinno, to je wykonuje. Jeśli nie, to zostawia.

Z tego co rozumiem, Ty chcesz wykonywać ten swój skrypt codziennie o 1
w nocy, ale jeśli komputer jest wtedy wyłączony — w najbliższym wolnym
terminie.

Myślę że da się to zrobić dodając zadanie do crona powiedzmy co
godzinę. Zadanie musi sprawdzić dwie rzecz — która jest godzina i kiedy
zostało ostatnio wykonane. Jeżeli jest pierwsza, powinno się wykonać.
Jeżeli jest inna godzina, powinno sprawdzić kiedy zostało ostatnio
wykonane (oczywiście musisz sobie tę informację zapisywać) — jeżeli
dawniej niż dzisiaj w nocy, to również powinno się wykonać.

Jeżeli zaś nie chcesz wykonywać tego skryptu o pierwszej a wystarczy Ci
że wykonuje się raz dziennie, to anacron spełni Twoje oczekiwania.
--
Niżej podpisany, zamieszkały w http://minio.xt.pl ,
Mirosław Zalewski
grzehorz
2009-12-19 21:44:49 UTC
Permalink
Post by ppp
Prosze o wytlumaczenie czy dobrze rozumiem dzialanie anacrona. Mam taki
5 1 * * * /home/user/bin/skrytp.sh &> /dev/null
czyli codziennie o 1:05 ma zostac wykonany ten skrypt. Chce uzyc anacrona,
aby wykonal ten skrypt zaraz po uruchomieniu kompa, gdy ten na przyklad
byl wylaczony o tej godzinie i cron nie wykonal tego zadania. Czy wlasnie
tak dziala anacron i czy da sie przy jego pomocy to osiagnac?
Opis hc-crona z PLD:

Package: hc-cron-0.14-23.athlon
Summary: Demon cron dla domowego komputera
Group: Daemons
Vendor: PLD
License: GPL
Arch/OS/Color: athlon/linux/1
Built: 2006/09/08 22:31 at athlon.ac.pld-linux.org
Size: 75.0 KB (77392 B)
Package size: 61.0 KB (63243 B)
Path: ftp://ftp.ac.pld-linux.org/dists/ac/PLD/athlon/PLD/RPMS
File: hc-cron-0.14-23.athlon.rpm
Description:
hc-cron jest demonem cron dla domowych komputerów. Uruchamia zadania w
określonych odstępach czasu oraz pamięta kiedy został wyłączony, by
móc wykonać pominięte zadania gdy zostanie ponownie uruchomiony.
Hc-cron jest oparty na szeroko używanym vixie cronie i używa tego
samego formatu pliku crontab, więc można stosować zamiennie te
programy.

Więc chyba to będzie to czego szukasz...

Pozdrawiam
g

Loading...