Konfiguracja serwerów, usług, itp.
Foczki
Posty: 55 Rejestracja: 19 stycznia 2015, 11:17
Post
autor: Foczki » 10 kwietnia 2015, 08:48
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
pawkrol
Moderator
Posty: 939 Rejestracja: 03 kwietnia 2011, 10:25
Post
autor: pawkrol » 10 kwietnia 2015, 09:05
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:
Foczki
Posty: 55 Rejestracja: 19 stycznia 2015, 11:17
Post
autor: Foczki » 10 kwietnia 2015, 09:24
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
pawkrol
Moderator
Posty: 939 Rejestracja: 03 kwietnia 2011, 10:25
Post
autor: pawkrol » 10 kwietnia 2015, 09:31
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
Foczki
Posty: 55 Rejestracja: 19 stycznia 2015, 11:17
Post
autor: Foczki » 10 kwietnia 2015, 09:59
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 !!
pawkrol
Moderator
Posty: 939 Rejestracja: 03 kwietnia 2011, 10:25
Post
autor: pawkrol » 10 kwietnia 2015, 10:05
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 » 10 kwietnia 2015, 10:48
Dzięki bardzo już wszystko działa to co chciałem
Stawiam piwo we Wrocławiu !
pawkrol
Moderator
Posty: 939 Rejestracja: 03 kwietnia 2011, 10:25
Post
autor: pawkrol » 10 kwietnia 2015, 10:50
Trochę daleko.....
Oznacz jeszcze temat jako rozwiązany zgodnie z regulaminem forum.
Foczki
Posty: 55 Rejestracja: 19 stycznia 2015, 11:17
Post
autor: Foczki » 10 kwietnia 2015, 11:33
Ok już mam znalazłem !