Cron: Różnice pomiędzy wersjami
Linia 25: | Linia 25: | ||
# Uruchamiaj się 5 minut po północy, codziennie | # Uruchamiaj się 5 minut po północy, codziennie | ||
− | 5 0 * * * | + | 5 0 * * * /usr/home/''login''/bin/daily.job >> /usr/home/''login''/tmp/out 2>&1 |
# Uruchamiaj się o 14:15 pierwszego dnia każdego miesiąca -- wyjście jest | # Uruchamiaj się o 14:15 pierwszego dnia każdego miesiąca -- wyjście jest | ||
# przesyłane na adres e-mail | # przesyłane na adres e-mail | ||
− | 15 14 1 * * | + | 15 14 1 * * /usr/home/''login''/bin/monthly |
# Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 | # Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 |
Wersja z 09:59, 9 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 * * * /usr/home/login/bin/daily.job >> /usr/home/login/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 * * /usr/home/login/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 * * * *"