11.doc

(686 KB) Pobierz
Po prostu











11







Skrypty powłoki i programowanie

 



 

 

251


















              Skrypty powłoki i programowanie

W rozdziałach 9. i 10. przedstawiliśmy informacje dotyczące pracy z linuksowym wierszem poleceń. Polega ona na wydawaniu pojedynczych poleceń wykonywanych natychmiast po naciśnięciu klawisza Enter.

Skrypty powłoki i programowanie

W tym rozdziale pójdziemy nieco dalej: pokażemy, w jaki sposób zlecać systemowi wykonanie pewnych czynności w przyszłości oraz jak tworzyć pliki wsadowe mogące zawierać większą liczbę poleceń. Takie pliki nazywane są często skryptami powłoki, ponieważ ich składnia i język w nich używany są wbudowane właśnie w powłokę. Podobnie sprawa wygląda w przypadku plików wsadowych systemu MS-DOS – z tym, że skrypty powłoki mogą mieć o wiele większe możliwości i łatwiej jest je tworzyć. Skrypty pozwalają na korzystanie ze swego rodzaju języka makropoleceń, działających w systemie operacyjnym.

Przedstawimy podstawowe wiadomości dotyczące zlecania systemowi wykonania pewnych poleceń w przyszłości. Następnie pokażemy, w jaki sposób tworzyć i uruchamiać nieskomplikowane skrypty powłoki.

Jeśli skrypty powłoki mają według Ciebie zbyt małe możliwości, możesz wykorzystać jeden z wielu języków programowania dostarczanych wraz z systemem Red Hat Linux. Omówię pokrótce możliwości języków
Awk, Perl, Python i Tcl.

Dla wielu użytkowników Linuksa bardzo ważny jest fakt, że rozprowadza się go wraz z kodem źródłowym. Pokażę Wam świetny sposób na wykorzystanie wolnego czasu: przeglądanie kodu źródłowego jądra systemu Linux!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Planowanie zadań

Planowanie zadań

Korzystając z polecenia at, możesz zlecić systemowi wykonanie jakiegoś polecenia o określonej godzinie. Jeśli chcesz, aby polecenie wykonywane było cyklicznie, możesz dodać je do pliku cron danego użytkownika.

Aby przesłać wiadomość pocztą elektroniczną za pomocą polecenia at

1.     W wierszu poleceń wpisz at i wyrażenie określające czas (patrz ramka). Wpisz na przykład at teatime + 5 minutes.

2.     teatime jest prawidłowym określeniem czasu (oznacza godzinę szesnastą), więc teatime + 5 minutes to po prostu 16.05.

 

3.     Wciśnij Enter. W nowym wierszu znak zachęty powłoki zostanie zastąpiony przez znak zachęty polecenia at, który ma postać at> (rysunek 11.1). Każde prawidłowe polecenie wpisane po tym znaku zachęty zostanie wykonane o zadanej godzinie.

4.     Określ adresata i temat wiadomości, która zostanie wysłana, na przykład
at> mail –s "Time to eat cake!" harold@bearhome.com.

5.     Wciśnij Enter. W następnym wierszu znów wyświetlony zostanie znak zachęty at>.

6.     Wprowadź tekst wiadomości – może on zajmować dowolną liczbę wierszy.

 

 




 

Wyrażenia określające czas w poleceniu at

Czas można określić na wiele sposobów. Domyślnie przyjmowany jesz czas 24-godzinny. Podawanie minut jest opcjonalne. Jeśli dodany zostanie przyrostek am lub pm, czas będzie traktowany jako czas 12-godzinny. Jeśli użyte zostanie słowo kluczowe zulu, będzie traktowany jako czas Greenwich (GMT), a nie zgodnie z obowiązującą strefą czasową. Zamiast numerycznych określeń można również stosować kilka słów mających specjalne znaczenie: midnight (północ), noon (południe), teatime (czas na herbatę) oraz now (teraz).

Słowo teatime oznacza godzinę 16.00, natomiast po słowie now trzeba podać czas, po jakim polecenie ma zostać wykonane.

Oprócz wartości oznaczających godziny można również podawać, w którym miesiącu zadanie ma się rozpocząć (za pomocą liczb od 1 do 12 lub pierwszych trzech liter angielskiej nazwy miesiąca). Rok oznaczany jest liczbą czterocyfrową. Dni tygodnia podaje się za pomocą pierwszych trzech liter nazwy angielskiej. Można również używać słów today (dziś) oraz tomorrow (jutro).

Odstępy czasu pozwalają na podanie pory rozpoczęcia zadania w odniesieniu do czasu bieżącego. Do ich określania służy znak +, po którym następuje liczba i jeden z wyrazów: minute, hour, day, week lub year (można również używać liczby mnogiej, na przykład weeks). Słowo next (następny) ma takie samo znaczenie, jak +1.

Oto kilka przykładów poprawnych określeń czasu (pierwsze dwa oznaczają to samo):
at 1412 January 9
at 2:12pm Jan 9
at 1 am Sat
at now + 5 minutes
at teatime next day

Planowanie zadań

Rysunek 11.1. Polecenia wprowadzane po znaku zachęty at> zostaną wykonane o zadanej godzinie.

Rysunek 11.2. Za pomocą polecenia at można wysłać wiadomość pocztą elektroniczną czy wykonać szereg poleceń.

Rysunek 11.3. Aby wyświetlić polecenia oczekujące na wykonanie, wpisz atq.

 

7.     Po wprowadzeniu ostatniego wiersza wiadomości wciśnij Enter, aby przejść do nowego wiersza.

8.     Przytrzymaj klawisz Control i wciśnij D, aby zakończyć polecenie. Wiadomość zlecona za pomocą polecenia at zostanie wysłana o 16.05 (rysunek 11.2).

Wskazówki

n     W powyższym przykładzie o zadanej porze wykonywane było tylko jedno polecenie. Nic nie stoi jednak na przeszkodzie, aby takich poleceń było więcej – wystarczy podać je kolejno po znaku zachęty at>. Wszystkie podane polecenia zostaną wykonane o określonej porze.

n     Zawartość pliku można przesłać pocztą elektroniczną, korzystając z następującej składni polecenia mail:
mail harold@bearhome.com < ~/nazwapliku

Aby anulować zlecenie programu at

1.     Wyświetl wszystkie polecenia oczekujące na wykonanie wpisując atq.

2.     Wciśnij Enter. Wyświetlona zostanie lista poleceń wchodzących w skład kolejki danego użytkownika (rysunek 11.3).
Jeśli użytkownikiem jest root, wyświetlone zostaną wszystkie zadania oczekujące na wykonanie. Pierwsza kolumna zawiera numer zadania, następna określa, kiedy zadanie ma zostać wykonane.

3.     Aby usunąć zadanie, wpisz atrm i jego numer, na przykład atrm 2.

4.     Wciśnij Enter.

5.     Aby sprawdzić, czy zadanie zostało usunięte, ponownie wydaj polecenie atq (rysunek 11.4).

 

 

 

Planowanie zadań

Pliki cron

Pliki cron służą do tego, aby użytkownicy mieli możliwość automatycznego uruchamiania poleceń w określonych odstępach czasu. Dla przykładu, można codziennie wysyłać administratorowi wiadomość przypominającą o konieczności wykonania kopii zapasowej systemu, można również co tydzień uruchamiać program sporządzający tygodniowe sprawozdania.

Warto zgrupować wszystkie potrzebne polecenia w pojedynczym skrypcie powłoki, zamiast wprowadzać je z osobna do pliku cron.

Administrator systemu, czyli root, może wykorzystać polecenie crontab, aby uzyskać dostęp do plików cron wszystkich użytkowników, co za chwilę wyjaśnię. Włącznie z poleceniem crontab administrator może zmieniać ustawienia programu cron na trzy sposoby:

n     Korzystając z programu Linuxconf.

n     Bezpośrednio edytując plik cron.

n     Korzystając z polecenia crontab –e.

W kolejnych akapitach opiszemy wszystkie te sposoby. Należy jednak pamiętać, że ze względów bezpieczeństwa edycja plików cron poszczególnych użytkowników może być zabroniona. Jeśli chcesz zmodyfikować plik cron, a nie jesteś administratorem systemu, powinieneś skontaktować się z administratorem.

Aby zlecić programowi cron wykonanie polecenia za pomocą panelu sterowania systemu Linux

1.     Zaloguj się jako root.

2.     Otwórz program Linuxconf.

3.     Przewiń listę znajdującą się w lewej części okna i wybierz pozycję Configure Superuser Scheduled Tasks
(rysunek 11.5).

 

Rysunek 11.4. Zadania mogą zostać usunięte z kolejki za pomocą polecenia atrm.

Rysunek 11.5. Za pomocą panelu sterowania systemu Linux można zdefiniować zadania wykonywane okresowo dla użytkownika root.

 

Planowanie zadań

 

Rysunek 11.6. Zakładka Schedule Jobs Definition pozwala dodawać zadania do pliku gron bez konieczności jego bezpośredniej edycji.

Rysunek 11.7. Pliki cron, zapisane w katalogu /var/spool/cron, można również edytować bezpośrednio.

Czas według programu cron

Liczby znajdujące się przed każdym z poleceń w pliku cron określają porę jego wykonania. Podawane są w pięciu kolumnach rozdzielonych przecinkami; myślnik oznacza zakres, natomiast gwiazdka – wszystkie dostępne wartości (jeśli na przykład w polu określającym dzień miesiąca znajdzie się gwiazdka, polecenie będzie wykonywane codziennie). Oto lista poszczególnych pól i dostępnych w nich wartości:
Minuty              0-59
Godziny              0-23
Dni miesiąca               1-31
Miesiące              1-12
Dni tygodnia              0-6, 0 = niedziela

 

4.     Kliknij przycisk Add na zakładce Schedule Jobs for Account Root. Otwarte zostanie okno dialogowe Schedule Job Definition (rysunek 11.6).

5.     Zaznacz opcję This Entry is Active.

6.     W polu Command wprowadź polecenie, które ma zostać wykonane. Polecenie przedstawione na rysunku 11.6 spowoduje wysłanie wiadomości pocztą elektroniczną:
mail –s "Czas na ciacho!" harold@bearhome.com

7.     W polach opisanych etykietą Time wprowadź dane określające porę wykonania zadania (szczegóły znajdziesz w ramce „Czas według programu cron”).
Ustawienia przedstawione na ilustracji 11.6, czyli 0-59/2 w polu minut oraz gwiazdki we wszystkich innych polach, spowodują wysyłanie dwóch wiadomości w ciągu minuty.

...

Zgłoś jeśli naruszono regulamin