Jak skonfigurować zadania CRON w Linux

Jak skonfigurować zadania CRON w Linux
Automatyzacja i planowanie powtarzających się zadań na komputerach stacjonarnych i serwerach poprawia wydajność i zmniejsza ręczną interwencję i monitorowanie. Wiele takich narzędzi jest dostępnych dla Linux, a jednym z najczęściej używanych wśród nich jest „Cron”.

W tym artykule wyjaśniono zadania dotyczące planowania i uruchamianie skryptów w regularnych odstępach czasu za pomocą CRON Jobs.

Co to jest Cron?

Cron to program planowania zadań, który działa w tle jako proces. Można go użyć do okresowego uruchamiania niektórych zadań, które są zaplanowane przy użyciu predefiniowanego zestawu reguł. Cron jest wstępnie zainstalowany w większości dystrybucji Linux lub dostępnych w repozytoriach, które mają być zainstalowane ręcznie.

Presete Cron

Cron na Ubuntu jest wyposażony w zestaw wstępnie zdefiniowanych harmonogramów. Możesz je sprawdzić, uruchamiając poniższe polecenie:

$ ls /etc /cron.*

Zwykle te foldery to „/etc/cron.godzinę ”,„/itp./Cron.codziennie ”,„/etc/cron.miesięczny ”i„/etc/cron.co tydzień".

Wystarczy umieścić swoje żądane skrypty w jednym z tych folderów, aby wykonywać zautomatyzowane zadania co godzinę, codziennie, miesięcznie lub co tydzień.

Zauważ, że Cron domyślnie używa powłoki „/bin/sh”. Jeśli chcesz użyć „/bin/bash” jako skorupy w skryptach cron, musisz użyć ”!#/bin/bash ”Hashbang u góry pliku skryptu lub zdefiniuj powłożenie jako zmienna„ Shell =/bin/bash ”w pierwszym wierszu w zaplanowanym skrypcie Bash. Zastępca zmienna środowiskowa „powłoki” działa również dla edytora crontab wyjaśnionego poniżej.

Nie wszystkie zmienne środowiskowe systemu mogą być narażone na zadania CRON. Zasadniczo dobrym pomysłem jest ręczne zdefiniowanie ważnych zmiennych środowiskowych w skrypcie zaplanowanym przez Cron.

Crontab

Crontab pozwala zdefiniować własne zaplanowane zadania. Możesz go użyć do konfigurowania harmonogramów CRON inaczej niż cztery standardowe ustawienia wstępne CRON wyjaśnione powyżej.

Aby ustawić zaplanowane zadanie w crontab, najpierw uruchom edytor crontab za pomocą poniższego polecenia:

$ crontab -e

Teraz na końcu pliku możesz dodać wpis w następującym formacie:

Minute godzinowy dzień miesiąca w dzień powszedni/pełny/ścieżka/do/skrypt.cii

Gdzie:

  • Minuta: dowolna wartość w zakresie od 0 do 59
  • Godzina: dowolna wartość w zakresie od 0 do 23, 0 to północ
  • Dzień: dowolna wartość w zakresie od 1 do 31
  • Miesiąc: dowolna wartość w zakresie od 1 do 12
  • WDEJDEY: dowolna wartość w zakresie od 0 do 6, 0 to niedziela

Wpis Crontab poniżej zrobi zrzut ekranu komputera i przechowuje go w katalogu domowym raz o 15:13 godzin 2 marca plus w każdy wtorek marca o 15:13 godzin.

13 15 2 3 2 Sosza

Aby wymienić wszystkie wpisy crontab, użyj poniższego polecenia:

$ crontab -l

Więcej przykładów

Zadania CRON można najlepiej wyjaśnić za pomocą przykładów, więc poniżej znajdują się przykłady, które okresowo zrobią zrzuty ekranu komputera stacjonarnego i przechowują je w folderze domowym.

Oprócz pięciu zmiennych planowania, Cron używa również specjalnego ciągu do planowania zadań. Te struny są:

  • @Hourly: Praca jest uruchamiana co godzinę
  • @Daily / @midnight: Praca jest uruchamiana codziennie
  • @Weekly: praca działa raz w tygodniu
  • @Monthly: praca działa raz w miesiącu
  • @yearly / @anally: praca działa raz w roku
  • @reboot: zadanie działa po ponownym uruchomieniu / logowaniu

Poniższy wpis Crontab zrobi zrzut ekranu raz na każdym ponownym uruchomieniu:

@Reboot Soszt

Możesz zastąpić „@reboot” na dowolne inne specjalne ciągi wymienione powyżej.

Korzystanie z gwiazdki lub wielkiej karty zamiast dowolnej z pięciu zmiennych powtórzy zadanie we wszystkich nowych przypadkach tej zmiennej. Poniższy wpis będzie robić zrzut ekranu co minutę:

* * * * * SPRAWA

Co godzinę:

0 * * * * SPRAWA

Codziennie o 18:00 godzin:

0 18 * * * SPROTKA

Co miesiąc 6 o 18:00 godzin:

0 18 6 * * Siewo

Użyj „/”, aby uruchomić skrypt w ustalonym okresie 30 minut (działa co 30 minut):

*/30 * * * *

Możesz użyć zmiennych oddzielonych przecinków, aby zdefiniować powtarzanie się skryptu w regularnych odstępach czasu. Poniższy przykład zrobi zrzut ekranu pulpitu na 1, 4. i 5 minucie nowej godziny.

Siewo 1,4,5 * * * *

Weryfikacja wpisów crontab

Definiowanie wpisów crontab może być trudne, ale debugowanie ich lub weryfikacja, czy działają w prawidłowych znacznikach, jest jeszcze trudniejsze. Jedną z opcji jest użycie maszyny wirtualnej i rejestrowania znaczników czasu skryptu działającego okresowo na zadaniu CRON, włączając coś takiego jak polecenie „data” i przekierowanie wyjścia do pliku tekstowego. Lepszym rozwiązaniem jest jednak skorzystanie z jednej z licznych usług testowania zadań CRON dostępnych w Internecie. Polecam udostępnienie witryny Cron Tester tutaj.

Wniosek

Running Cron Jobs to doskonały sposób na automatyzację powtarzających się zadań, szczególnie na serwerach. Narzędzie jest niezwykle potężne i dostosowywane. Ważne jest jednak, aby ustalić, że definicja harmonogramu działa poprawnie, zwłaszcza jeśli istnieją zadania krytyczne misji.