cron jest opartym na czasie programem do harmonogramowania zadań w systemach operacyjnych z rodzinyUnixa. Może zostać wykorzystany do uruchamiania zadań (programów, komend, skryptów) o określonych godzinach, datach albo regularnie zgodnie z określonym interwałem.
cron przegląda/var/spool/cron/crontabs w poszukiwaniu plików-tabel (crontab), o nazwach zgodnych z istniejącymi kontami systemowymi. Znalezione tabele ładuje do pamięci. Cron ładuje również plik konfiguracyjny/etc/crontab (który jest w nieco innym formacie niż pozostałe tabele).
W pliku/etc/crontab wpisane są dodatkowe reguły, które uruchamiają zadania cogodzinowe, codzienne, cotygodniowe i comiesięczne. Zadania te wpisywane są w postaci skryptów do katalogów:/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly.
Następnie cron budzi się co minutę, sprawdzając wszystkie załadowane tabele, czy przypadkiem jakaś komenda w tej minucie nie powinna być wywołana. Podczas wywoływania komend, ich wyjście (oraz standardowy strumień błędów) jest przesyłanepocztą elektroniczną do właściciela tabeli.
Dodatkowo, cron co minutę sprawdza, czy czas modyfikacji katalogu/var/spool/cron/crontabs (lub czas modyfikacji/etc/crontab) był zmieniony, a jeśli tak, to cron sprawdzi czasy modyfikacji tabel i przeładuje wszystkie te, które były ostatnio zmienione. Dzięki temu nie jest konieczne restartowanie demona po wprowadzeniu zmian w plikach.
W plikach-tabelach zadania do wykonania opisywane są przez sześć pól oddzielonych spacją lub tabulatorem. Pierwsze pięć pól służy określeniu czasu, natomiast ostatnie pole to polecenie do wykonania. Kolejne pola czasu określają: minuty, godziny, dni, miesiące, dni tygodnia. Zapis:
oznacza polecenie wykonywane co minutę. Zapis:
oznacza polecenie wykonywane w 5. minucie 4. i 22. godziny w każdy dzień parzysty jeśli ten dzień nie jest sobotą ani niedzielą.
Najpopularniejszymi odmianami demona cron sąVixie cron ifcron.
cron(8) – strona podręcznika systemuLinux| System plików | |
|---|---|
| Procesy | |
| Środowisko użytkownika | |
| Przetwarzanie tekstu | |
| Wbudowane w powłokę | |
| Komunikacja | |
| Wyszukiwanie | |
| Dokumentacja | |
| Różne |