[ Pobierz całość w formacie PDF ]

# buduj nazwę raportu ze słowa kluczowego i daty
log_report=/tmp/$1.logreport.`date '+%d%m%y'`
# buduj nagłówek raportu, zawierający typ systemu, nazwę hosta,
# datÄ™ i czas
echo "========================================================" \
> $log_report
echo " DZIENNIK ZDARZEC SYSTEMOWYCH" >> $log_report
uname -a >> $log_report
echo "Raport dziennika dla " `hostname -f` "z dnia " `date '+%c'` \
>> $log_report
echo "========================================================" \
>> $log_report; echo "" >> $log_report
166 Część II Praca z systemem SUSE Linux
# rozpoczęcie przeszukiwania dziennika
echo "Szukane hasło: " $1 "od dnia:" `date '+%r'` >> $log_report
echo "" >> $log_report
# pobranie i zapisanie wyników szukania słowa kluczowego ($1)
# w pliku dziennika ($2)
grep -i $1 $2 >> log_report
# stopka raportu z datÄ…
echo "" >> $log_report
echo "Koniec pracy " >> $log_report `date '+%r'` >> $log_report
# wyślij raport do użytkownika root
mail -s "Analiza dziennika $2" root
# usuń plik raportu i zakończ pracę
rm $log_report
exit 0
Powyższy skrypt tworzy zmienną $log_report, w której zapisuje nazwę pliku genero-
wanego raportu. Słowo kluczowe $1 i pierwszy argument w wierszu poleceń służą do
zbudowania nazwy pliku wraz z bieżącą datą. Nagłówek raportu zawiera kilka wierszy
sformatowanego tekstu, nazwę systemu (wziętą z wyjścia polecenia uname), nazwę hosta
i datę. Skrypt rejestruje początek wyszukiwania, a wszystkie dopasowane słowa kluczowe
z pliku dziennika zostajÄ… dodane do raportu. Do raportu zostaje dodana stopka zawierajÄ…ca
nazwę i datę raportu, który następnie zostaje wysłany do użytkownika root wiadomością
e-mail z wyszukiwanym terminem zapisanym jako tytuł wiadomości, a plik $log_report
zostaje usunięty.
Aby przetestować skrypt, upewnij się, że w systemie uruchomiony jest demon syslogd.
Podaj słowo kluczowe i ścieżkę do dziennika zdarzeń systemowych /var/log/messages,
na przykład:
greplog FAILED /var/log/messages
Jeśli w systemie wystąpiły jakieś błędy logowania, użytkownik root powinien otrzymać
wiadomość e-mail. Jeżeli usługi poczty elektronicznej zostały poprawnie skonfigurowane
(zobacz  Konfiguracja konta pocztowego w SUSE Linux w rozdziale 13.), wiadomość
powinna dotrzeć do superużytkownika.
Zmienne wbudowane
Jądro Linuksa udostępnia powłoce kilka zmiennych wbudowanych, których wartości użyt-
kownik nie może zmienić. Należą do nich:
$#  liczba parametrów pozycyjnych przekazanych do powłoki (tej zmiennej
użyliśmy w poprzednim podrozdziale).
$?  kod zakończenia ostatniego polecenia lub programu powłoki wykonanego
w powłoce (zwrócona wartość).
Rozdział 8. Praca z powłoką 167
$0  nazwa programu powłoki.
$*  pojedynczy łańcuch wszystkich argumentów przekazanych w chwili
wywołania programu powłoki.
To tylko kilka podstawowych zadań i rzeczy, które można zrobić z powłoką. Zagłębimy się
w ten temat w rozdziale 33.,  Wiersz polecenia  kurs zaawansowany .
Odnośniki
http://www.cryptonomicon.com/beginning.html  esej Neala Stephensona In the
Beginning Was the Command Line. Autoryzowana  aktualizacja tego eseju,
autorstwa Garretta Birkela, The Command Line in 2004 dostępna jest pod adresem
http://garote.bdmonkeys.net/commandline/.
http://www.gnu.org/software/bash/  oficjalna witryna bash w GNU Project.
Można tu pobrać najnowszą wersję oprogramowania i przeczytać dokument
Introduction to Bash.
http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html  strona Cheta Rameya,
oficjalnego opiekuna projektu bash. Bardzo przypomina stronÄ™ oficjalnÄ…,
lecz dodatkowo zawiera listÄ™ FAQ.
http://www.tldp.org/LDP/Bash-Beginners-Guide/html/  podręcznik bash
dla poczÄ…tkujÄ…cych.
http://ldp.nllgg.nl/LDP/abs/html  zaawansowany poradnik pisania skryptów
powłoki bash.  Ten podręcznik nie zakłada uprzedniego doświadczenia w pisaniu
skryptów lub programowaniu, lecz szybko przechodzi do średnio zaawansowanego
lub zaawansowanego poziomu instrukcji . Tekst można czytać online oraz pobrać
jako PDF lub zródła SGML. [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • dirtyboys.xlx.pl