Cygal.net.pl

Systemy, Sieci i takie tam :)

Spawdzanie dostępnosci Access Pointów




W przypadku problemów siecią… często występuje potrzeba sprawdzenia które urzą…dzenia w sieci nie są… dostępne i nie zawsze mamy dostęp do takich narzędzi jak zabbix, nagios lub tym podobne. Często zdarza się ze jedyny dostęp jaki mamy, to tylko i wyłą…cznie konsola systemu linux dostępna przez sesje ssh. Ciężko jest pamiętać wszystkie urzą…dzenia jakie posiadamy w sieci. Szczególnie jeżeli mamy tych urządzeń kilkadziesią…t. Oczywiście możemy użyć nmap do odnalezienia wszystkich urzą…dzeń a następnie sprawdzaić dostępność każdego urzą…dzenia poprzez narzędzia typu ping czy fping. Niestety takie rozwią…zania zajmują… trochę czasu, a dodatkowo wiadomo, ęe każdy sysadmin czy też netadmin jest leniwym stworzeniem. Dlatego, żeby zaoszczedzić czas na skanowaniu sieci, postanowiłem napisać prosty skrypt w BASHu. Skrypt wykorzystuje fping do sprawdzania dostępności urzą…dzeń. Sama baza urzą…dzeń z ich adresami IP, lokalizacją… oraz typem zostaje umieszczona w osobnym pliku tworzą…c prosta tekstowa bazę danych o urzą…dzeniach.

A oto skrypcik 😀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash

BAZA_AP=/root/skrypty/ap.db
# tablica adresow IP access pointow
adresy_ip=(`cat $BAZA_AP | awk '{print $1}'`);

# tablica ulic
ulice=(`cat $BAZA_AP| awk '{print $2}'`);

# tablica urzadzen
urzadzenie=(`cat $BAZA_AP | awk '{print $3}'`);

clear # czyszczenie ekranu
line=2; # ustawienie poczatkowego licznika lini
j=0; # zerowanie wskaznika do tablicy ulice
online=0; # zerowanie licznika urzadzen online

echo -e "=============ACCESS=POINTS========== n";

for i in ${adresy_ip[@]} # przeszukujemy tablice za IP i wykonujemy Fping dla kazdego adresu
do
   ((line++))
   fping=`fping -Ar1 $i | awk '{print $3}'`;
   if [ $fping != "alive" ]; then # jezeli host nie zwraca wartosci alive to wpisujemy ze host jest DEAD w przciwnym razie OK
       echo -e " Access Point: $i 33[$line;27H33[33mna ulicy: ${ulice[$j]} 33[$line;55H33[34m${urzadzenie[$j]}33[$line;72H33[31m[ DEAD]33[0m "
       awaria[$j]=$i # jezeli host jest DEAD zapisujemy jego adres IP do tablicy awaria
   else
       echo -e " Access Point: $i 33[$line;27H33[33mna ulicy: ${ulice[$j]} 33[$line;55H33[34m${urzadzenie[$j]} 33[$line;72H33[32m[ OK]33[0m "
      ((online++))
   fi
((j++))
done

liczba=0; # zerowanie licznika AP ktore sa DEAD

for k in ${awaria[@]} # sprawdzamy ile AP uleglo awari
do
   ((liczba++))
done

echo -e "n"
echo -e "n"
echo -e "=================STATYSTYKA=================="
echo -e "Liczba urzadzen on-line: 33[32m$online33[0m "
echo -e "Liczba niedzialajacych urzadzen: 33[31m$liczba33[0m " # wypisujemy liczbe AP ktore sa DEAD
echo -e "Sprawdz AP o adresie: 33[31m${awaria[@]}33[0m " # wypisujemy adresy IP accessow ktore nalezy sprawdzic!!!
echo -e "==========================================="

Plik z bazą adresów IP oraz opisem urzą…dzeń powinna zostać umieszczona w osobnym pliku o nazwie ap.db. Struktura pliku została przedstawiona poniżej.

10.0.0.160 Sebastiana_30 Airmax5
10.0.0.161 Sebastiana_22 Airmax5
10.0.0.71 Starowislna_41 Airmax5
10.0.0.72 Starowislna_54 Airmax5

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Time limit is exhausted. Please reload CAPTCHA.