cron
-
Plik konfiguracyjny /etc/crontab. Katalog na pliki konfiguracyjne: /var/spool/cron/
-
Demon crond wywołuje run-parts w celu uruchomienia skryptów z katalogów /etc/cron.*.
Przy każdym uruchomieniu demon cron sprawdza datę modyfikacji pliku /etc/crontab oraz katalogu /var/spool/cron/. Jeśli uległy one zmianie, demon ponownie odczytuje wszystkie zmiany i uwzględnia je przy kolejnych wywołaniach. Ponieważ polecenie crontab po edycji pliku zadań zmienia datę modyfikacji dla katalogu /var/spool/cron/, po wprowadzeniu zmian w pliku harmonogramu użytkownika nie ma potrzeby restartowania procesu cron – zmiany te zostaną uwzględnione przy następnym uruchomieniu. Z tego właśnie powodu do edycji plików harmonogramu użytkowników należy używać polecenia crontab -e, a nie edytować pliki bezpośrednio. Dla pliku /etc/crontab data modyfikacji jest sprawdzana osobno, więc można go edytować zwykłym edytorem (wymagane są uprawnienia roota).
Dane wyjściowe generowane przez wykonywane polecenia domyślnie są przesyłane na skrzynkę pocztową właściciela pliku harmonogramu (zazwyczaj jest to root, a jego adres EMail jest określony w pliku /etc/aliases). Aby anulować domyślne działanie, należy użyć zmiennej MAILTO. Pusta wartość (MAILTO="") spowoduje przekierowanie wiadomości do /dev/null.
Format pliku crontab pozwala również zamiast pierwszych pięciu pól oznaczających czas wykonania zadania użyć predefiniowanych wartości:
-
@reboot (wykonywać przy uruchomieniu systemu operacyjnego)
-
@yearly (wykonywać corocznie o północy 1 stycznia)
-
@monthly (wykonywać miesięcznie o północy 1-go dnia miesiąca)
-
@weekly (wykonywać o północy każdego poniedziałku)
-
@daily (wykonywać codziennie o 0:00)
-
@hourly (wykonywać na początku każdej godziny).
Aby wyświetlić plik crona dla użytkownika www-data, użyj opcji -e, która pozwoli na edycję pliku crona użytkownika www-data.
# crontab -u www-data -e # редактировать содержимое файла crontab # crontab -u www-data -l # отобразить содержимое файла crontab
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed
Przykłady:
-
Uruchamiać program co dwa dni o 10:00 i wysyłać raport na adres EMail określony w zmiennej MAILTO
MAILTO=noc@example.net 0 10 */2 * * root /usr/local/repl/restart_repl.sh
-
Uruchamiać skrypt 1-go i 15-go dnia każdego miesiąca o 2:05, a także w niedziele (Day i WDay działają w trybie "LUB")
5 2 1,15 * Sun /home/script
