wtorek, 25 grudnia 2012

Uruchomione usługi - Skrypt Bash cz.3

Czasami chcemy sprawdzić jakie usługi działają na serwerze, a jakie nie (chociaż powinny). Możemy szybko to sprawdzić poprzez prosty skrypt, który będzie wyświetlał nam przyjazne komunikaty, w min wykorzystamy netstat, który takich danych nam dostarczy. Dodatkowo jeżeli jakaś usługa została przez nas zainstalowana, możemy dodać opcję restartu usługi.


Na razie będzie to jedynie informacja o otwartych portach. Widać dwie listy, sprawdzamy otwarte porty poleceniem netstat następnie wypisujemy usługę oraz port który działa / nie działa. Możemy dopisywać porty oraz usługi na koniec każdej listy, pętla natomiast wykona resztę:)

1) Wykorzystujemy listy:

#!/bin/bash
PORT=('21' '22' '23' '25' '53' '80')
NAME=('FTP' 'Sftp' 'Telnet' 'SMTP' 'DNS' 'WWW')

Count=0
while [ $Count -lt "${#PORT[@]}" ]; do
STAT=`netstat -tln | grep "${PORT[Count]}" | awk '{print $6}'`

if [ "$STAT" != "LISTEN" ]; then
echo  "Nie dziala." ${PORT[Count]}"-" ${NAME[Count]}
else
echo "Dziala." ${PORT[Count]}"-" ${NAME[Count]}

fi
(( Count +=1 ))
done


2) Wersja z case, mniej wygodna ponieważ musimy dopisywać za każdym razem echo z usługą (znalezione w sieci, dodałem nieco usług):


PORT=( '21' '23' '25' '80' '22' '53' '110' '143' '3306' '443' '5432' )
#-- kolorki
B='\e[1;34m'
R='\e[0;31m'
N='\e[0m'
#-----------
echo "Status monitorowanych uslug: "
echo "---------------------------------------------"
for X in ${PORT[*]}
do
        STAT=`netstat -tln |grep $X |awk '{print $6}' | tail -1`
        if [ "$STAT" != "LISTEN" ]; then
                case $X in
                "21") echo -e "FTP ${R}NIE${N} dziala !!";;
              "23") echo -e "Telnet ${R}NIE${N} dziala !!";;
              "25") echo -e "SMTP ${R}NIE${N} dziala !!";;
              "80") echo -e "Apache ${R}NIE${N} dziala !!";;
                "22") echo -e "SSH ${R}NIE${N} dziala !!";;
                "53") echo -e "Bind ${R}NIE${N} dziala !!";;
                "110") echo -e "POP3 ${R}NIE${N} dziala !!";;
                "143") echo -e "IMAP ${R}NIE${N} dziala !!";;
                "3306") echo -e "MySQL ${R}NIE${N} dziala !!";;
                "443") echo -e "Apache SSL ${R}NIE${N} dziala !!";;
              "5432") echo -e "PostgreSQL ${R}NIE${N} dziala !!";;
                esac
        else
                case $X in
             "21") echo -e "FTP ${R}DZIALA${N} na porcie $X"";;
             "23") echo -e "Telnet ${R}DZIALA${N} na porcie $X"";;
             "25") echo -e "SMTP ${R}DZIALA${N} na porcie $X";;
             "80") echo -e "Apache ${B}DZIALA${N} na porcie $X";;
               "22") echo -e "SSH ${B}DZIALA${N} na porcie $X";;
               "53") echo -e "Bind ${B}DZIALA${N} na porcie $X";;
               "110") echo -e "Dovecot ${B}DZIALA${N} na porcie $X";;
               "3306") echo -e "MySQL ${B}DZIALA${N} na porcie $X";;
               "443") echo -e "Apache SSL ${B}DZIALA${N} na porcie $X";;
 "5432") echo -e "PostgreSQL ${R}DZIALA${N} na porcie $X";;
                                
esac
        fi

done



Brak komentarzy:

Prześlij komentarz