Crone – harmonogra zadań w systemie Linux. Pozwala na uruchomienie skryptu w powłoce o określonym czasie lub przy określonej akcji (@reboot).
Jest przydatny do automatyzacji zadań, odpalania skryptów kopii zapasowych etc, uruchomienia programu czy zadania o określonej porze. W praktyce jest to plik tekstowy, który możemy edytować preferowanym edytorem tekstu.
Składnia
Jeden wiersz o podanej niżej składni to jedno zadanie.
1 |
MINUTY GODZINY DZIEN_MIES MIESIAC DZIEN_TYG KOMENDA |
Dostępne wartości dla pól
MINUTY | 0-59, * |
GODZINY | 0-23, * |
DZIEN_MIES | 1-31, * |
MIESIAC | 1-12 lub JAN-DEC, * |
DZIEN_TYG | 0-6 lub SUN-SAT (od niedzieli), 7 (tak, niedziela jest pod 0 i 7), * |
KOMENDA | Ścieżka skryptu |
Gwiazdka *
Wszystkie dostępne wartości.
1 |
* * * * * /home/test/example.sh |
(oznacza uruchamianie skryptu co minutę)
Przecinek ,
Ponadto możemy wymieniać wartości po przecinku, więc gdybyśmy chcieli uruchomić zadanie np. dwa razy w miesiącu w konkretne dni miesiąca to możemy wypisać pod DZIEŃ_MIES dwie liczby oddzielone przecinkiem. Całkiem intuicyjne.
1 |
0 15 1,15 * * /home/test/example.sh |
(codziennie o 15:00 pierwszego i piętnastego dnia każdego miesiąca w każdy dzień tygodnia)
Myślnik –
Zamiast wymieniać konkretne wartości możemy podać ich zakres.
1 |
0 15 1-15 * * /home/test/example.sh |
(codziennie o 15:00 od pierwszego do piętnastego dnia każdego miesiąca w każdy dzień tygodnia)
Parametry nieliczbowe
Zamiast pisać konkretne wartości daty możemy posłużyć się adnotacjami(?).
1 2 3 4 5 6 7 |
@yearly @annually @monthly @weekly @daily @hourly @reboot |
Domyślnie są uruchamiane w najniższej możliwej wartości niższego rzędu, to znaczy jeśli odpalimy @yearly to skrypt uruchomi się 1 stycznia o północy
@yearly /home/test/example.sh
Przykłady
1 |
0 7,15 * * /home/test/example.sh |
(codziennie o 7 i 15)
1 |
0 7,15 * 1-5 /home/test/example.sh |
(codziennie o 7:00 i 15:00, od poniedziałku do piątku)
1 |
*/30 * * * * /home/test/example.sh |
(co 30 minut)
1 |
@reboot /home/test/example.sh |
(uruchom na starcie)
Jak edytować crona?
1 |
Crontab -e |
Lub jeśli preferujesz inne edytor…
1 |
EDITOR=nano crontab -e |
Co dalej?
Po wpisaniu naszego zadania zapisujemy plik i sprawdzamy wyświetlamy czy z wpisem wszystko OK poleceniem (edytor poda dziwną nazwę pliku dlatego że zapisywane są one najpierw jako tymczasowe).
1 |
cronetab -l |
To tyle 🙂
PS Wykonania z crona nie będą wyświetlane w konsoli!