[+] Skrypt zbieraj

Potrzebujesz pomocy z C, C++, perl, python, itp.
TooMeeK
Posty: 85
Rejestracja: 25 lipca 2008, 12:54

[+] Skrypt zbierający informacje systemowe

Post autor: TooMeeK »

Uszanowanko!
Napisałem skrypt zbierający informacje systemowe i w zamierzeniu ma on wysyłać raz dziennie informacje na adres e-mail administratora danego serwera. W moim przypadku jest to Debian. Chciałbym go jednak bardziej dopracować, więc czekam na pomysły, co byście do niego dopisali/zmienili?

Kod: Zaznacz cały

#/bin/bash
#Skrypt do zbierania informacji systemowych - Debian
 
#Tworzę zmienną - nazwa pliku z datą i aktualnym czasem
temp=$(echo "log_" | tr -d '\n' && date +%Y%m%d%H%M%S | tr -d '\n' && echo ".log")
#Podanie zmiennej z nazwą pliku i pełną ścieżką
plik=/var/log/$temp
#Utwórz pusty plik - nazwa pliku zawiera czas w sekundach, wiec nie powtórzy się
touch $plik
#Zbieranie informacji
echo "-----------------------SYSTEM I JAJKO-----------------------" >> $plik
uname -a >> $plik
cat /etc/hostname >> $plik
echo "-----------------------LOGI SYSTEMOWE-----------------------" >> $plik
echo "-----------------------AUTH.LOG - NIE UDANE LOGOWANIA-----------------------" >> $plik
cat /var/log/auth.log | grep Fail >> $plik
echo "-----------------------AUTH.LOG - UDANE LOGOWANIA-----------------------" >> $plik
cat /var/log/auth.log | grep Accept >> $plik
echo "-----------------------SYSLOG-----------------------" >> $plik
cat /var/log/syslog >> $plik
echo "-----------------------STAN MACIERZY DYSKOWEJ-----------------------" >> $plik
mdadm --detail /dev/md0 >> $plik
echo "-----------------------KTO JEST AKTUALNIE ZALOGOWANY-----------------------" >> $plik
who -s >> $plik
who -q >> $plik
Do tego eksperymentowałem z wysyłaniem tego na maila (mail, sendmal), ale coś nie idzie. Czy w Debianie trzeba konfigurować serwer pocztowy? Pytanie laika, wiem :-/

[ Dodano: 2008-10-28, 21:23 ]
Zapomniałem dodać:
echo "-----------------------TEMPERATURY I NAPIECIA-----------------------"
sensors >> $plik
echo "-----------------------ILOSC WOLNEJ PAMIECI-----------------------"
free -m > $plik
A czy ktoś wie jak wstawić do logu średnie dzienne obciążenie procesora?

[ Dodano: 2008-10-28, 21:35 ]
tak testowałem mail:
mail -s "Raport o stanie serwera "$(cat /etc/hostname) -c boss@firma.pl ja@firma.pl
Awatar użytkownika
ShinnRa
Beginner
Posty: 457
Rejestracja: 05 marca 2007, 23:05
Lokalizacja: Gdynia

Post autor: ShinnRa »

ja bym na pewno zmienił tą linijkę no chyba, że plik ma zawierać tylko info o pamięci:

Kod: Zaznacz cały

echo "-----------------------ILOSC WOLNEJ PAMIECI-----------------------"
free -m > $plik
^^
Stawi
Beginner
Posty: 209
Rejestracja: 10 lutego 2007, 16:02
Lokalizacja: Kraków

Post autor: Stawi »

A ja bym zainstalowal logwatch - robi wszystko co podaliscie i wiele wiecej. Poza tym jest w pelni konfigurowalny - troszke upierdliwie ale sie da.

Pozdr :D
winnetou

Post autor: winnetou »

Kod: Zaznacz cały

echo "-----------------------ŚREDNIE OBCIĄŻENIE SYSTEMU-----------------------" >> $plik
cat /proc/loadavg >> $plik
Wynik jest w postaci: średnie obciążenie w ostatniej minucie, w ostatnich 5 minutach i ostatnich 15 minutach, do tego informacje o procesach running_processes/all_processes i jeszcze jedna liczba, o której nic nie wiem.
TooMeeK
Posty: 85
Rejestracja: 25 lipca 2008, 12:54

Post autor: TooMeeK »

ShinnRa, dzięki za podpowiedź. Co powiesz na:
cat /proc/meminfo > $plik
?
winnetou, właśnie wczoraj wyniuchałem ten plik (ogólnie przejrzałem co prezentuje katalog /proc) tylko nie zdążyłem posta napisać ;)
Awatar użytkownika
ShinnRa
Beginner
Posty: 457
Rejestracja: 05 marca 2007, 23:05
Lokalizacja: Gdynia

Post autor: ShinnRa »

Chodziło mi raczej o to, że dałeś tylko jeden > co powoduje usunięcie całej zawartości pliku.

Ja osobiście wolę pobierać wszystkie informacje o systemie z /proc
&quot pisze:

Kod: Zaznacz cały

echo "-----------------------ŚREDNIE OBCIĄŻENIE SYSTEMU-----------------------" >> $plik
cat /proc/loadavg >> $plik
Wynik jest w postaci: średnie obciążenie w ostatniej minucie, w ostatnich 5 minutach i ostatnich 15 minutach, do tego informacje o procesach running_processes/all_processes i jeszcze jedna liczba, o której nic nie wiem.
Ostatnia liczba to id ostatnio stworzonego procesu.

Generalnie co do plików w /proc to polecam:

Kod: Zaznacz cały

man /proc
tam jest wszystko bardzo ładnie opisane.
TooMeeK
Posty: 85
Rejestracja: 25 lipca 2008, 12:54

Post autor: TooMeeK »

Rozwiązałem to tak:
  1. Konfiguracja Exima:

    Kod: Zaznacz cały

    dpkg-reconfigure exim4-config
    (swoją drogą nie ogarniam jego pliku konfiguracyjnego)
    - na firewallu otworzyłem tylko port 25 do wysyłania komunikatów z serwera, bo poczty na nim nie potrzebuję trzymać.
  2. Do powyższego skryptu na końcu dopisałem:

    Kod: Zaznacz cały

    #Wysyla w postaci tekstu w mailu
    mutt -s "Raport o stanie serwera METEOR" [email]admin@firma.pl[/email] -c [email]network@firma.pl[/email] < $plik
I w ten sposób otrzymuję raporty. Czy są lepsze rozwiązania?
Utumno
Beginner
Posty: 432
Rejestracja: 09 listopada 2008, 13:04
Lokalizacja: Gdansk

Post autor: Utumno »

Od tego sa systemy SNMP takie jak Munin czy Cacti.
fair
Posty: 21
Rejestracja: 16 listopada 2008, 17:06
Lokalizacja: Wrocław

Post autor: fair »

Trochę poza tematem ale może się komuś przyda:
link
ODPOWIEDZ