Za uruchamianie cykliczne zadań w systemach Linuksowych odpowiada demon cron
. Jego konfiguracja odbywa się poprzez plik crontab
, w którym są zdefiniowane jakie zdarzenie i kiedy mają wystąpić. Dokładna dokumentacja znajduje się w pliku MAN crontab(5). Przykładowy wpis może wyglądać następująco:
Poszczególne pola definiują, kiedy dana akcja ma zostać wykonana:
30
– minutę4
– godzinę1,15
– dzień miesiąca (1 lub 15)*
– miesiąc (gwiazdka oznacza każdego miesiąca)5
– dzień tygodnia (piątek)root
– użytkownik, który ma wykonać akcję/bin/backup
– co ma zostać wykonane
Pomiędzy poszczególnymi zapisami jest stosowany spójnik „i”, czyli zapis powyżej oznacza: wykonania skryptu /bin/backup
przez użytkownika root
każdego miesiąca, w piątek oraz kiedy dzień miesiąca jest równy 1 lub 15 o godzinie 4:30.
I tutaj pojawia się mała niespodzianka, ponieważ ta definicja nie jest prawdziwa.
W dokumentacji można przeczytać coś takiego:
Note: The day of a command’s execution can be specified by two fields — day of month, and day of week. If both fields are restricted (ie, aren’t *), the command will be run when either field matches the current time.
Co oznacza (w wolnym tłumaczeniu):
Dzień wykonania danej komendy może zostać podany w dwóch polach: dzień miesiąca oraz dzień tygodnia. Jeżeli oba pola są zdefiniowane (czyli są tam wartości inne wartości niż „*”) dana komenda zostanie wykonana jeżeli do aktualnego będzie pasowało jedno z tych pól.
Czy definicja powyżej oznacza: wykonania skryptu /bin/backup
przez użytkownika root
każdego miesiąca, w piątek lub kiedy dzień miesiąca jest równy 1 lub 15 o godzinie 4:30.
Należy zapamiętać, że jeżeli podamy oba pola, to między nimi występuje spójnik „lub”.