[+] Skrypt sprawdzaj

Konfiguracja serwerów, usług, itp.
Foczki
Posty: 55
Rejestracja: 19 stycznia 2015, 11:17

[+] Skrypt sprawdzający działanie serwerów

Post autor: Foczki »

Witam,
muszę napisać skrypt który sprawdzi czy serwer odpowiada na ping a jeżeli nie odpowiada to żeby wysłał maila że coś jest nie tak.
zrobiłem to tak jak umiałem czyli

Kod: Zaznacz cały


#!/bin/bash
#apt-get install sendemail
#apt-get install libio-socket-ssl-perl libnet-ssleay-perl perl
COUNT=10
HOSTS="192.168.3.99 192.168.3.104 192.168.3.2 192.168.3.11 192.168.3.10 192.168.3.151 192.168.3.12 192.168.3.13"


# email report when
EMAILSUBJ="SERVER down"
EMAILTO="a@a.com a@a.com a@a.com"
testserver="192.168.3.9"
#testtime=`date +%Y%m%d_%H%M%S`;
testtime=`date +%H%M`;
testcheck="1237"
alertpassword=""
for myHost in $HOSTS
do
 count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
    # 100% failed.
#echo "Host : $myHost is down (ping failed) at $(date)"  | sendmail -s "$SUBJECT" $EMAILID
EMAILBODY="Host : $myHost is down (ping failed) from $testserver at $(date)"
#sendEmail -f alert@mojaskrzynka.com -t $EMAILTO -s a.home.pl -u $EMAILSUBJ -m $EMAILBODY -o tls=no -xu alert@mojaskrzynka.com -xp  $alertpassword
sendEmail -f root@a.pl -t $EMAILTO -s s.infocon.pl -u $EMAILSUBJ -m $EMAILBODY -o tls=no
fi
done


if [ $testtime = $testcheck ]; then
sendEmail -f root@192.168.3.111 -t $EMAILTO -s 192.168.3.111 -u "testmail from: $testserver" -m "just checking from: $testserver " -o tls=no
fi


Ale coś mi nie działa, możecie mi pomóc i znaleźć błąd w moim myśleniu ?

Pozdrawiam
Foczki
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Ja mam taki prosty do sprawdzania pinga. Może Ci się coś przyda

Kod: Zaznacz cały


#!/bin/bash
ip=192.168.150.150
program_mail=/usr/bin/sendemail

if ping -c 1 -w 2 $ip &> /dev/null
    then
        echo "Wlaczony"
    else
        echo "Wylączony"
        $program_mail -f support@domena.pl -t admin@domena.pl -u "Stan  Serwera XXX" -m "Serwer nie działa" -s mail.domena.pl:587 -xu  support@domena.pl -xp HasloHaslo -o tls=yes -o message-charset=utf-8  &> /dev/null
fi
Do wysyłania maila używam programu:

Kod: Zaznacz cały

aptitude install sendemail
Foczki
Posty: 55
Rejestracja: 19 stycznia 2015, 11:17

Post autor: Foczki »

Mam pytanko bo nie jestem pewny:

Kod: Zaznacz cały

[color=#333333] $program_mail -f support@domena.pl -t admin@domena.pl -u [/color]
Ta część odpowiada za to na jaki adres zostanie wysłany email informacyjny ?

Kod: Zaznacz cały

[color=#3E3E3E]mail.domena.pl:587 -xu  support@domena.pl -xp HasloHaslo -o tls=yes -o message-charset=utf-8  &>[/color]
Bo tego się domyślam że to odpowiada za informacje z jakiego konta będzie to wysłane tak ?

Próbuje na różne sposoby i nie chce mi wysłać tego mail :(
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Ta część odpowiada za to na jaki adres zostanie wysłany email informacyjny ?

Kod: Zaznacz cały

mail.domena.pl:587 -xu  support@domena.pl -xp HasloHaslo -o tls=yes -o message-charset=utf-8  &>
[/color]
-xu support@domena.pl -xp HasloHaslo ( nazwa użytkownika i hasło do konta z którego wysyłasz maila)
-s mail.domena.pl:587 - serwer pocztowy oraz port
-o tls - połączenie po tls
-f - nadawca
-t - odbiorca

Zerknij

Kod: Zaznacz cały

sendemail --help

Foczki
Posty: 55
Rejestracja: 19 stycznia 2015, 11:17

Post autor: Foczki »

Witam już wszystko działa ale mam małe pytanko jak dodać kilka adresów ip do tego skrypciku ?

Pozdrawiam i dziękuje bardzo mocno za pomoc !!
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Tak jak miałeś wcześniej (w pętli)

Kod: Zaznacz cały

#!/bin/bash

HOSTS="192.168.150.10 192.168.150.11"
program_mail=/usr/bin/sendemail

for myHost in $HOSTS
do

if ping -c 1 -w 2 $myHost &> /dev/null
    then
        echo "$myHost Wlaczony "
    else
        echo "$myHost Wylączony"
        $program_mail -f support@domena.pl -t admin@domena.pl -u "Stan  Serwera $myHost" -m "Serwer $myHost nie działa" -s mail.domena.pl:587 -xu  support@domena.pl -xp HasloHaslo -o tls=yes -o message-charset=utf-8  &> /dev/null
fi

done


Foczki
Posty: 55
Rejestracja: 19 stycznia 2015, 11:17

Post autor: Foczki »

Dzięki bardzo już wszystko działa to co chciałem :D

Stawiam piwo we Wrocławiu !
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post autor: pawkrol »

Trochę daleko..... :)

Oznacz jeszcze temat jako rozwiązany zgodnie z regulaminem forum.
Foczki
Posty: 55
Rejestracja: 19 stycznia 2015, 11:17

Post autor: Foczki »

Ok już mam znalazłem !
ODPOWIEDZ