2009
Cron jest ważnym demonem systemowym, którego zadaniem jest uruchamianie programów cyklicznie lub o określonej porze.
Demon jest to program lub proces, będący częścią większego programu lub procesu, który jest nieaktywny dopóki nie wystąpią zadane warunki, które spowodują jego uruchomienie.
Tak jak wcześniej wspomniałem, Cron to demon, który pozwala użytkownikowi na zaprogramowanie danej czynności z dokładnością do minuty. Programujemy raz i zapominamy o tym, wszystko robi się automatycznie.
1. Zasada działania:
Cron przeszukuje pliki crontab (plik-tabela).
Główny plik-tabela znajduje się w /etc/cron.d/crontab.
Każdy użytkownik posiada również własny crontab, który znajduje się (domyślnie) w /var/spool/cron/crontabs/.
Podstawowa różnica polega na tym, że w pliku /etc/cron.d/crontab należy określić użytkownika, który będzie wykonywał dany proces. W pliku /var/spool/cron/crontabs/ taka konieczność nie zachodzi, gdyż każdy plik przypisany jest do poszczególnego użytkownika np. /var/spool/cron/crontabs/mama, /var/spool/cron/crontabs/tata.
Osobiście wszelkie wpisy umieszczam w /etc/cron.d/crontab- moim zdaniem wygodniej.
2. Schemat wpisu.
Schemat wpisu w pliku /etc/cron.d/crontab wygląda następująco:
{$data-czas} {$użytkownik} {$zadanie}
Natomiast w plikach użytkowników (/var/spool/cron/crontabs/), pomijana jest nazwa użytkownika, więc:
{$data-czas} {$zadanie}
To był jednak schemat. Przykładowy wpis będzie wyglądał tak:
* * * * * użytkownik polecenie
Oczywiście w plikach użytkowników wpis będzie wyglądał:
* * * * * polecenie
A teraz szczegóły:
a. Data:
Data składa się z gwiazdek. Kolejne gwiazdki oznaczają kolejno:
- minuta (zakres 0-59)
- godzina (zakres 0-23)
- dzień (zakres 0-31)
- miesiąc (zakres 0-12 lub nazwa, pierwsze 3 litery nazwy angielskiej)
- dzień tygodnia (zakres 0-7 lub nazwa, pierwsze 3 litery nazwy angielskiej)
Przykład:
Jeśli chcemy, aby jakieś polecenie wykonywane było codziennie co minutę:
* * * * * użytkownik polecenie
Codziennie co dwie minuty:
*/2 * * * * użytkownik polecenie
Codziennie o 13:15:
15 13 * * * użytkownik polecenie
Codziennie o 14:00, 15:00, 16:00, 17:00:
00 14-17 * * * użytkownik polecenie
Trzynastego dnia każdego miesiąca o godzinie 19:05:
5 19 13 * * użytkownik polecenie
Codziennie w styczniu, marcu, maju, o godzinie 12:45:
45 12 * 1,3,5 * użytkownik polecenie
W każdą środę i piątek o godzinie 6:00:
00 6 * * 3,5 użytkownik polecenie
Jak widać na powyższych przykładach możemy używać:
- przedziałów - np. 2-5 - oznacza przedział zamknięty od 2 do 5,
- wyliczeń - np. 1,2,3,9,10,15,31 - polecenie zostanie wykonane jedynie w tych minutach/dniach miesiąca,
- przeskoków - np. */2 - co dwie minuty/godziny/dni/miesiące (zależy od miejsca użycia).
b. Użytkownik:
Pole to dotyczy jedynie wpisów w /etc/cron.d/crontab. Użytkownik to po prostu login, którym logujesz się do systemu. Dla roota będzie to root.
c. Polecenie:
Tutaj panuje oooogrrroooomny wybór. Możesz robić praktycznie wszystko, dlatego opisanie tego nie jest możliwe.
Pomocny może okazać się zbiór artykułów Moc zaklęta w terminalu umieszczonych na stronie. Użyj wyszukiwarki na prawo, aby je odszukać.
Polecenia wyglądają tak, jakbyś wprowadzał je z terminala np.
Otworzenie Kadu:
*/2 11-17 * 2 * pawel kadu
Przeniesienie pliku (analogicznie usuwanie i kopiowanie):
00 */4 * * 1 basia mv /bardzo/ważny/plik /ściśle/tajne/miejsce
Zapisanie daty do pliku:
15 13 * * * zosia date >> plik.txt
Oczywiście to są zupełne podstawy, na pierwszy rzut oka nieprzydatne. Jednak istnieje możliwość, aby Cron robił automatyczny backup plików na serwerze, zrzut bazy MySql, odcinał użytkownikom dostęp do Internetu, wysyłać maila do kogoś... wszystko zależy od inwencji twórczej osoby, która go zaprogramuje.
Mała uwaga odnośnie wpisów w plikach użytkowników. Aby móc w pełni korzystać z dobrodziejstw Crona, należy dodać login użytkownika do pliku /etc/cron/cron.allow
Aby sprawdzić jakie zadania zostały przypisane dla użytkownika, w terminalu wydaj polecenie:
crontab -l
Aby usunąć crontab użytkownika, wydaj polecenie:
crontab -r
Zobacz także:
Na każdy komentarz postaramy się udzielić odpowiedzi w ciągu 24 godzin od momentu wysłania.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.




Rejestracja
Zapomniane hasło





