background image

Grupa 12K2  

Rafał Linca   9.XII.2009 

Ćwiczenie Laboratoryjne 9 

Sprawozdanie

 

 
1.  

Wstęp 

 

Celem niniejszego ćwiczenia jest zaprezentowanie podstawowych zagadnień 

związanych z automatycznym, planowanym uruchamianiem procesów w systemie 
Linux/Unix. 
 
2.  Przebieg 

ćwiczenia 

 

Po umieszczeniu p

olecenia (lub kilku poleceń) w tle można w dalszym ciągu 

wykonywać polecenia w pierwszym planie, nawet jeśli wykonywanie poleceń w tle nie 
zostało jeszcze zakończone. Polecenie umieszcza się w tle podając na jego końcu 
znak  &
 
 

Uruchamianie poleceń at batch wymaga przydzielenia uprawnień przez 

administratora. Nadanie uprawnień polega na dopisaniu nazwy użytkownika 
uprawnionego do wykonywania tych poleceń do pliku /usr/lib/cron/at.allow lub 
usunięciu nazwy użytkownika z pliku /usr/lib/cron/at.deny. 
 
 

Na 

wstępie sprawdziliśmy czas systemowy. Następnie wpisywaliśmy 

polecenie, które miało na celu utworzenie katalogów w określonym czasie: 
 
• za 2 minuty ls –l > at 2 
• za 10 minut mkdir > at 3 
• za 20 minut ls > at 20 
• za 40 minut find / -name „at” –print > at 40 
 
Następnie usunęliśmy zadania komendą at –d <numer zadania>. W podobny 
sposób jak polecenie at działa polecenie batch z tą różnicą, że proces nie jest 
wykonywany w zadanym czasie, tylko w momencie małego obciążenia systemu. 
 
Następnie utworzyliśmy skrypt: 
 

while 

do 

echo $0 - `date` 

sleep 15 

done 

 
I postępowaliśmy wg skryptu: 
 
Uruchamianie zadania w tle i wylogowanie się. 
Aby uruchomić zadanie: 
• wpisz polecenie nohup ./s1 & i wciśnij Enter. 
• zaczekaj i upewnij się, że co 15 sekund na ekranie pojawia się aktualny czas i data. 
• wpisz polecenie ps –ef i wciśnij Enter. 

background image

• zanotuj PPID powłoki wykonującej skrypt s1. 
• wpisz polecenie exit i wciśnij Enter. 
• zaczekaj i sprawdź czy aktualny czas i data nadal pojawiają się na ekranie. 
• wpisz polecenie exit i wciśnij Enter. 
• zaczekaj i sprawdź czy aktualny czas i data nadal pojawiają się na ekranie. 
• wpisz polecenie ps –ef i wciśnij Enter. 
• zanotuj PPID powłoki wykonującej skrypt s1. 
 
Mogliśmy zaobserwować że: 

  plik nohup.out  

ulega zmianie jego wielkość; 

  PPI

D  uległo zmianie;  

 

aktualna czas i data są ciągle wyświetlane na ekranie; 

 
 

Każdy użytkownik w systemie GNU/Linux ma dostęp do systemu Cron 

poprzez program crontab

. Program umożliwia zakładanie, edycję i wyświetlanie pliku 

konfiguracyjnego dla danego użytkownika. 
 

Podstawowe wywołania crontab to: 

• crontab -e - edycja pliku, 
• crontab -l - wyświetlenie pliku, 
• crontab -r - usunięcie pliku, 
• crontab -u user {-e|-l-r} - edycja pliku zadanego użytkownika - wywołanie 
tylko dla administratora, 
• crontab plik - użycie gotowego pliku jako crontab. 

 

Plik zawiera szereg zadań dla systemu cron, gdzie przez zadanie można 

rozumieć polecenie, które ma być wykonywane w dokładnie zdefiniowanym cyklu. 
Każdy użytkownik może założyć jeden taki plik, i może się w nim znajdować wiele 
zadań, każde w osobnej linii. Jedna linia opisuje jedno zadanie i składa się z sześciu 
pól, rozdzielonych białymi spacjami. Pola w każdej linii oznaczają kolejno: minutę, 
godzinę dzień miesiąca, miesiąc, dzień tygodnia, ostatnie to nazwa polecenia do 
wykonania. Gwiazdka w miejscu wartości oznacza: ,,dla każdej wartości pola''. 
 

Edycję pliku można rozpocząć od pierwszej linii. Przykładowo, jeżeli chce się 

ur

uchamiać polecenie who co godzinę, linia w crontab może wyglądać następująco: 

 

0 * * * * who 

 

Aby uruchamiać polecenie raz dziennie należy podać określoną godzinę i 

minutę: 
 

0 8 * * * who 

 
Oprócz plików użytkowników system cron ma jeden systemowy plik konfiguracyjny, 
/etc/crontab

, który może być edytowany bezpośrednio przez administratora. 

 
Kolejnym zadaniem było utworzenie pliku s2 który zawiera poniższy skrypt: 
 

#!/bin/bash 

trap ‘echo Nie dasz rady’ 15 

background image

while true 

do 

echo $0 - `date` - Sprobuj mnie wylaczyc 

sleep 15 

done 

 
Próby wyłączenia skryptu przez ctrl-c nie przynosi efektów, zaradzić może jedynie 
wysłanie do procesu sygnału SIGKILL
 
 
3. Wnioski: 
 
System cron 

w systemach GNU/Linux sprawia, że administrator nie musi być ciągle 

przy nadzorowaniu paramet

rów systemu - może zaplanować włączanie i wyłączanie 

wybranych procesów o zadanym czasie. Jest to przydatna funkcja systemu 
odciążająca użytkownika od okresowych poleceń.