Cron: Różnice pomiędzy wersjami
(Utworzono nową stronę "''Cron'' to specjalny program, odpowiedzialny za cykliczne wykonywanie zadań. Każdy użytkownik posiada specjalną tabelę ''crontab'', w której może ustawić jakie...") |
|||
Linia 18: | Linia 18: | ||
# Przesyłaj raport na adres e-mail: | # Przesyłaj raport na adres e-mail: | ||
− | MAILTO=login@ | + | MAILTO=login@''domena'' |
# Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, | # Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, | ||
Linia 32: | Linia 32: | ||
# Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 | # Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 | ||
− | 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@ | + | 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@''domena'' |
# Inne przykłady | # Inne przykłady |
Wersja z 18:05, 6 mar 2015
Cron to specjalny program, odpowiedzialny za cykliczne wykonywanie zadań. Każdy użytkownik posiada specjalną tabelę crontab, w której może ustawić jakie programy i kiedy powinny zostać automatycznie uruchomione.
Zarządzanie
Swoimi tabelami cron zarządzamy korzystając z polecenia crontab:
$ crontab -l pokazuje obecną tabelę cron $ crontab -e edytuje tabelę $ crontab -r usuwa tabelę
Przy poleceniu crontab -e
, nasza tabela otwierana jest w domyślnym edytorze. Jeśli chcemy zmienić domyślny edytor na nano trzeba wydać polecenie: export EDITOR=nano
.
Przykłady
Poniżej prezentujemy przykładową tabelę cron. Należy zwrócić szczególną uwagę na zmienne MAILTO
i PATH
- sprawiają one że praca z cronem staje się wygodniejsza.
# Używaj /usr/local/bin/bash do wywoływania komend. Ta linijka nie jest wymagana do działania crontab. SHELL=/usr/local/bin/bash # Przesyłaj raport na adres e-mail: MAILTO=login@domena # Użyj następującej wartości zmiennej PATH. Bez tego musimy podawać pełne ścieżki do binarek (przykładowo, # zamiast python musimy podać /usr/local/bin/python, etc. PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:login/bin # Uruchamiaj się 5 minut po północy, codziennie 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # Uruchamiaj się o 14:15 pierwszego dnia każdego miesiąca -- wyjście jest # przesyłane na adres e-mail 15 14 1 * * $HOME/bin/monthly # Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@domena # Inne przykłady 23 0-23/2 * * * echo "uruchamiaj 23 min po polnocy, 2, 4 ..., codziennie" 5 4 * * sun echo "Uruchamiaj się 5 po 4 w niedziele" 0 10 * * 1,3 echo "Uruchamiaj się w każdy poniedzialek i srode o 10.00" */2 * * * * echo "Uruchamiaj się co 2 minuty" #lub z wykorzystaniem zapisu słownego z wykorzystaniem znaku "@" tzn.: @reboot echo "System uruchomił się!"; # - polecenie uruchamiane każdorazowo po uruchomieniu systemu @yearly echo "Minął kolejny rok!"; # - odpowiednik zapisu "0 0 1 1 * @annually echo "Minął kolejny rok!"; # - jak wyżej @monthly echo "Minął kolejny miesiąc!"; # - odpowiednik zapisu "0 0 1 * *" @weekly echo "Minął kolejny tydzień!"; # - odpowiednik zapisu "0 0 * * 0" @daily echo "Minął kolejny dzień!"; # - odpowiednik zapisu "0 0 * * *" @midnight echo "Minął kolejny dzień!"; # - jak wyżej @hourly echo "Minęła kolejna godzina!"; # - odpowiednik zapisu "0 * * * *"