Skrypty powłoki Bash #14 - Planowanie powtarzalnych zadań
Wstęp
Dzień dobry, dziś opowiem o planowanie powtarzalnych zadań w programie cron.
Co to jest CRON?
Cron (od Greckiego Chronos) jest programem, to cyklicznego uruchamiania programów o zadanym czasie. Program cron, jest najczęściej wspominanym programem, jeśli chodzi o skrypty, programy i same systemy Linuksowe i uniksowe. Wielu programistów i administratorów uruchamiają swoje programy cyklicznie, co przekłada się na przydatność poznania tego narzędzia.
Jak używać Crona
Aby ustawić jakieś zadanie w programie cron (cron job), musimy edytować plik crontab
. Dla każdego użytkownika jest on oddzielny, a jego edycję, przy pomocy edytora zdefiniowanego w zmiennej EDITOR
, wykonujemy poprzez wywołanie komendy crontab -e
.
Natomiast jeśli chcemy tylko zobaczyć, jakie programy są zdefiniowane dla naszego użytkownika, wykonamy wtedy komendę crontab -l
.
Do usunięcia wszystkich wpisów zadań dla użytkownika wykorzystamy crontab -d
.
UWAGA! crontab -d
usuwa wszystkie wpisy, bez pytania o potwierdzenie!!
Struktura wpisu cron
Przykładowy wpis może wyglądać tak:
15 09 * * * /home/mlewicki/app
Gdzie pola oznaczają odpowiednio:
Minuty | Godziny | Dzień | Miesiąc | Dzień tygodnia | Polecenie |
---|---|---|---|---|---|
15 | 09 | * | * | * | /home/mlewicki/app |
Co oznacza: Uruchom program /home/mlewicki/app codziennie o 9:15.
* oznacza każdy.
Przykładowe wpisy
Dla zaznajomienia się ze strukturą podam kilka przykładów.
Co niedzielę o północy czyść katalog /tmp
00 00 * * 0 rm -rf /tmp
Codziennie o północy czyść pliki z rozszerzeniem .log w katalogu /var/log/myapp
00 00 * * * rm -rf /var/log/myapp/*.log
Co 15 minut uruchamiaj test.py
Notacja dla nowszych dystrybucji
*/15 * * * * python /home/app/src/test.py
Notacja dla starszych dystrybucji
0,15,30,45 * * * * python /home/app/src/test.py
Epilog
Dziękuję Ci bardzo, za poświęcony czas na zerknięcie na ten wpis.
Chciałbym ci polecić stronę, która ułatwi ci ustawianie zadań w cronie.
Strona ta to crontab.guru na pewno przyda się przy pracy z cronem. :)
Dobrego dnia Ci życzę i miłej pracy lub nauki.