Newsletter

Grupa MagazynyInternetowe

Online: 895

Wyszukiwarka

Hosting, Narzędzia dla webmastera, Linux

Shell w praktyce

Zastosowania

Crona można wykorzystać np. do cyklicznego uruchamiania aplikacji diagnostycznych, które sprawdzą np. czy żadna z tabel w bazie nie uległa przypadkiem uszkodzeniu.

Zastosowań jest wiele: ktoś może potrzebować systemu wysyłającego raz dziennie na adres e-mail statystyki odwiedzin witryny lub informacje o liczbie nowo zarejestrowanych kont. Ktoś inny może wykorzystywać Crona do powiadamiania pracowników o zamówieniach wykonanych przez firmę w danym dniu lub generowania zbiorczego zestawienia pod koniec tygodnia. Z kolei ktoś, kto prowadzi forum internetowe, może udostępnić opcję powiadamiania o nowych wątkach na forum.

Edytor Vi, służący do programowania zadań, może sprawiać problemy początkującym użytkownikom Edytor Vi, służący do programowania zadań, może sprawiać problemy początkującym użytkownikom Prowadzący rozmaite newsroomy mogą zrezygnować z codziennego wysyłana listów mailingowych, ponieważ Cron raz dziennie, w czasie najmniejszego ruchu (około 3-6 nad ranem), wyśle mailing, tworząc automatycznie (na podstawie danych z bazy) wyciąg z podsumowaniem dodanych w danym dniu newsów.

Jeżeli witryna udostępnia kanały RSS, Cron może posłużyć do generowania nowego pliku, nie za każdym razem, gdy odwoła się do niego użytkownik, ale np. raz na 3 godziny.

Dostęp do Crontaba

Aby wprowadzić nowe zadania lub zmienić istniejące, należy edytować plik konfiguracyjny przy użyciu programu Crontab. Do każdego konta shellowego przypisany jest dokładnie jeden plik konfiguracyjny Crontab. Tym sposobem, edytując jego zawartość, znajdziemy w nim tylko swoje zadania.

  • Edycja zawartości pliku Crontab odbywa się poprzez wprowadzenie polecenia crontab -e.
  • Zawartość całego pliku Crontab można wyświetlić na ekranie (wylistować) korzystając z polecenia crontab -l.
  • Usunięcie (skasowanie) zawartości aktualnego pliku Crontab odbywa się poprzez polecenie crontab -r.

Edycja pliku Crontab właściwie niczym nie różni się od edycji pliku tekstowego. Odbywa się ona przy użyciu domyślnego edytora tekstu, choć i to można zmienić. Jeżeli wolisz pracować na edytorze Vi, możesz zmienić domyślny edytor, korzystając z polecenia: export EDITOR=vi. A gdy zechcesz zmienić edytor na mcedit: export EDITOR=mcedit.

Programowanie zadań

Format dokumentów Crontab jest bardzo restrykcyjny: każde zadanie zajmuje jedną linię i składa się z siedmiu poleceń. Szablon przykładowego zadania prezentuje się następująco:

minuta godzina dzień_miesiąca miesiąc dzień_tygodnia użytkownik polecenie

Jak łatwo zauważyć, najwięcej, bo aż pięć zmiennych wykorzystywanych jest do sprecyzowania czasu, w którym zostanie wykonane polecenie. Jako że polecenie użytkownik jest w omawianym przypadku niepotrzebne, można je odrzucić.

Rozpoczynając edycję pliku konfiguracyjnego ze swojego konta, dajesz Crontabowi wystarczającą wskazówkę, którego użytkownika to zadanie dotyczy. W miejsce polecenia wprowadź dowolne odwołanie do programu czy skryptu. Możesz do tego wykorzystywać parametry. Wszystko odbywa się analogicznie jak przy wprowadzaniu poleceń za pomocą linii komend.

Oto polecenia, które precyzują, kiedy ma zostać uruchomiona komenda:

  • minuta - 0-59 - w której minucie godziny,
  • godzina - 0-23 - o której godzinie,
  • dzień_miesiąca - 1-31 - w którym dniu miesiąca,
  • miesiąc - 1-12 lub słownie - w którym miesiącu; wyrażony numerycznie lub trzyliterowym skrótem angielskiej nazwy miesiąca (np. Jul, Dec),
  • dzień_tygodnia - 0-7 lub słownie - w którym dniu tygodnia; wyrażony numerycznie lub trzyliterowym skrótem angielskiej nazwy dnia (np. Mon, Fri), gdzie 0 i 7 to niedziela, 1 poniedziałek, itd.

Przy zapisie poleceń występują dwa znaki specjalne:

  • * (asteriks) - wszystkie wartości z zakresu są dopuszczone, czy też wartość jest nieistotna ("*" przy parametrze miesiąc oznacza, że zadanie dotyczy wszystkich miesięcy w roku).
  • , (przecinek) - służy do utworzenia listy dopuszczanych wartości ("1,3,5,7" przy dzień_tygodnia oznacza, że zadanie będzie wykonywane w nieparzyste dni tygodnia).
  • - (pauza) - pozwala na tworzenie zakresu dopuszczanych wartości ("1-14" przy dzień_miesiąca oznacza, że zadanie będzie wykonywane od 1 do 14 dnia miesiąca).
  • / (podzielone) - dzieli zakres w taki sposób, że co n-ta wartość jest dopuszczona ("*/2" przy dzień_miesiąca oznacza, że zadanie będzie wykonywane w co drugi dzień miesiąca).
24 kwietnia 2007
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)
 

Autor

Paweł Grzesiak

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.