Strona główna > Konsola, Polecenia > crontab – automatyzacja zadań

crontab – automatyzacja zadań

Witam,

Dzisiaj zajmę się omówieniem automatyzacji zadań w systemie Linux. Postaram się od razu przejść do rzeczy. Dokonanie wpisu w konfiguracji crontab (dla swojego konta) będzie powodowało cykliczne wykonywanie tego właśnie programu czy też skryptu.

Najprostszą metodą konfiguracji odpowiedniego pliku konfiguracyjnego jest użycie przystosowanego do tej operacji edytora. W Ubuntu mamy do dyspozycji parę edytorów tekstowych, takich jak:

  • mcedit
  • nano
  • vim
  • ed

Ja polecam vim lub nano. Najprościej jest posługiwać się nano z dwóch przezemnie polecanych. Oba edytory sprawdzają składnę wpisu więc przy zapisywaniu jesteśmy informowani o ewentualnych błędach. No to zaczynamy!

Po wybraniu edytora mamy do dyspozycji następującą składnię:

minuta godzina dzień_miesiąca miesiąc dzień_tygodnia polecenie
minuta przyjmuje wartości od 0 do 59
godzina przyjmuje wartości od 0 do 23
dzień_miesiąca przyjmuje wartości od do
miesiąc przyjmuje wartości od 1 do 12
dzień_tygodnia przyjmuje wartości od 0 do 6
polecenie - może to być polecenie konsolowe lub skrypt
* - przyjmuje dowolną wartość

Przykładowe wpisy mogą wyglądać następująco:

0 9 * * * /home/user/skrypt

Taki wpis spowoduje, że każdego dnia o godzinie 9 rano będzie uruchamiany skrypt o nazwie „skrypt”.

0 1,3,6,12,21 * * * /home/user/skrypt1

To z kolei spowoduje, że skrypt będzie uruchamiany codziennie o godzinach: 1, 3, 6 …

0 1-10 * * * /home/user/skrypt2

Następstwem tego wpisu będzie wykonywanie się skryptu od godziny 1 do 10 z godzinami 1 i 10 włącznie.

0 1-10/2 * * * /home/user/skrypt3

Efektem tego wpisu będzie uruchamianie się skryptu w podanym przedziale czasowym co 2 godziny.

Kolejnym ważnym aspektem pliku zawierającego są dwie zmienne:

  • SHELL
  • MAILTO

Zmienna SHELL definiuje powłokę w jakiej ma dane polecenie się wykonać, czyli może przyjmować następujące wartości:

SHELL=/bin/sh
SHELL=/bin/bash

Zmienną ta powinna być zdefiniowana na początku pliku konfiguracyjnego, podobnie jak zmienna MAILTO. Należy ją stosować wtedy, gdy istnieje potrzeba uruchomienia polecenia czy też skryptu w innej powłoce niż jest to zdefiniowane dla użytkownika w /etc/passwd.

Z kolei zmienna MAILTO definiuje gdzie zostaną wysłane informacje o wykonanym zadaniu czy też błędach jakie podczas wykonywania polecenia zaszły. Zmienna ta może być zdefiniowana w następujący sposób:

MAILTO=test_user - wysłanie poczty systemowej do użytkownika test_user
MAILTO="user@domena.test" - wysłanie poczy email na wskazany adres mail
MAILTO="" - taka konfiguracja sprawi, że maile nie będą nigdzie wysyłane

Można również definiować własne zmienne, które przesłaniają istniejące zmienne lub tworzą nowe wartości. Definicja ta powinna wygkądać następująco:

ZMIENNA=wartość

Zmiennej używamy oczywiście stosując znak $ przed nazwą zmiennej.

Na zakończenie należy dodać, że komentarze są oznaczone znakiem #, a puste linie są ignorowane😀.

To wszystko na dziś. Powodzenia!

  1. Polonistyk
    6 Czerwiec 2011 o 16:12

    Serdecznie dziękuję, dzięki twojemu opisowi zrozumiałem jak wypełnić ten magiczny formularz🙂

  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: