Ten blog nie jest już rozwijany. Wraz ze wszystkimi artykułami zostały przeniesiony pod adres wmroczkowski.pl

Czy chcesz przejść pod nowy adres?

niedziela, 19 lipca 2009

Automatyzacja zadań w Linuksie, czyli jak korzystać z programu CRON

Na pewno większość z was uważa, że komputer powinien ułatwiać życie, automatyzować pracę. I to oczywiście jest prawdą. Jednak aby zautomatyzować sobie prace zupełnie należy się dowiedzieć trochę na temat programów, które pozwalają na taką automatyzację.
Jeżeli mówimy o Linuksie to najlepszym przykładem będzie program CRON.

Jest to jedno z podstawowych narzędzi w systemach unikosowych. Niektórzy porównują działanie tego programu do budzika. Po prostu ustawiamy godzinę i częstotliwość oraz wybieramy, który skrypt lub program ma się wykonywać w danym czasie.

Program cron korzysta ze specjalnego pliku o nazwie crontab. To właśnie w tym pliku zapisywane są informacje na temat tego co i kiedy ma zostać uruchomione. Aby zobaczyć i edytować zawartość tego pliku należy wydać komendę:

crontab -e

Jeżeli uruchamiasz ten plik po raz pierwszy to prawdopodobnie będzie pusty. Czasami jednak są tam umieszczone różne zadania, które system dodaje automatycznie.

Opiszę działanie poszczególnych wpisów w crontab na przykładzie:

45 4 1 * * /home/user/backup.sh

W tym przykładzie zostanie uruchomiony skrypt o nazwie backup.sh o godzinie 4:45 pierwszego dnia każdego miesiąca. To właśnie lewa część powyższego wpisu jest odpowiedzialna za czas uruchomienia, natomiast prawa strona jest odwołaniem do skryptu, który ma się wykonać.

Liczby i gwiazdki przedstawiają okresy czasowe zaczynając od minuty. Tak więc po kolei mamy minuty, godziny, dni miesiąca, numer miesiąca (1-12) i dzień tygodnia. Dzień tygodnia jest liczony od 0 i oznacza ono niedziele.

Gwiazdki postawione przy numerze miesiąca i dniu tygodnia oznaczają, że nie mają one wpływu na uruchamianie skryptu. Skrypt zostanie uruchomione zawsze pierwszego dnia miesiąca o godzinie 4:45.

Po edycji pliku należy go zapisać i zamknąć. Od teraz obowiązuje nowa tablica crontab. Jeżeli chcemy tylko wyświetlić naszą tablicę crontab, musimy wydać następujące polecenie:

crontab -l

Istnieje również możliwość usunięcia całej tablicy:

crontab -r

Oczywiście powyższy opis pomoże na pewno w sytuacjach, gdy chcemy uruchomiać nasz skrypt w określonych przedziałach czasu, ale co zrobić gdy musimy go wykonać w przedziałach czasu niekoniecznie równomiernych? Można utworzyć kilka zadać crontab ale to jest bardziej pracochłonne. Jest szybszy sposób. Można wykorzystać specjalne symbole do dokładniejszego określenia czasu. Mamy do dyspozycji 3 dodatkowe symbole:

1. Przecinek (,) - za jego pomocą można określić kilka wartości w jednej kolumnie. Poniższy przykład uruchomi skrypt każdego 1,4 i 26 dnia każdego miesiąca:

4 45 1,4,26 * * /home/user/backup.sh

2. Łącznik (-) - umożliwia on określanie zakresów kolumny. Poniższy wpis uruchamia skrypt codziennie przez pierwsze 15 dni każdego miesiąca:

4 45 1-15 * * /home/user/backup.sh

3. Ukośnik (/) - dzieli zakres kolumny na równe części. Poniższy zapis będzie uruchamiał dany skrypt co 15 minut:

*/15 * * * * /home/user/backup.sh

Mam nadzieję, że ten krótki opis ułatwi każdemu wprowadzanie automatyzacji we własnym systemie.

Brak komentarzy: