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 i 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:
1
while
2
do
3
echo $0 - `date`
4
sleep 15
5
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.
• 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:
1
#!/bin/bash
2
trap ‘echo Nie dasz rady’ 15
3
while true
4
do
5
echo $0 - `date` - Sprobuj mnie wylaczyc
6
sleep 15
7
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ń.