Witam.
Mam taki problem, chcę aby serwer puszczał ping do np. bramy lub innego urządzenia i w przypadku braku odpowiedzi powiadamiał mnie mailem (później też sms), że urządzenie nie odpowiada. Kiedyś to ktoś robił mi ale zmieniałem serwer i teraz nie pamiętam jaki pakiet to robił.
Czym takie coś zrobić?
Pozdrawiam.
[+] brak ping i powiadamianie na email
-
raczkowski1
- Beginner
- Posty: 124
- Rejestracja: 04 lipca 2007, 10:08
-
raczkowski1
- Beginner
- Posty: 124
- Rejestracja: 04 lipca 2007, 10:08
Dziękuję za odpowiedzi, znalazłem w internecie skrypt i go przerobiłem, może komuś się przyda więc tu go wkleję:
Kod: Zaznacz cały
#!/bin/bash
# Simple SHELL script for Linux and UNIX system monitoring with
# ping command
# -------------------------------------------------------------------------
# Copyright (c) 2006 nixCraft project <http://www.cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit [url]http://bash.cyberciti.biz/[/url] for more information.
# -------------------------------------------------------------------------
# Setup email ID below
# See URL for more info:
# [url]http://www.cyberciti.biz/tips/simple-linux-and-unix-system-monitoring-with-ping-command-and-scripts.html[/url]
# -------------------------------------------------------------------------
# add ip / hostname separated by white space
HOSTS="wp.pl onet.pl ip_x ip_y"
# no ping request
COUNT=2
DIRLOG=/var/log/
LOG=$DIRLOG/ping.log
MSG=/tmp/sendping
SEND=0
if [ -e $MSG ]; then
rm $MSG -f
fi
sizelog=$(cat $LOG | wc -c)
if [ $sizelog -gt 1048576 ]; then
echo "pakowanie"
tar zcf $LOG.tar.gz $LOG
rm $LOG -f
fi
SUBJECT="Ping failed - report from host"
EMAILID="twoj_mail@poczta.pl"
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 probably is down (ping failed) at $(date)" | mail -s "$SUBJECT" $EMAILID
echo "$myHost probably is down (ping failed) at $(date) " >>$MSG
echo `date +"%Y-%m-%d %H:%M:%S Host : $myHost probably is down (ping failed) at $(date) "` >>$LOG
SEND=1
fi
echo `date +"%Y-%m-%d %H:%M:%S Host : $myHost is OK at $(date)(ping count: $count) "` >>$LOG
done
echo " " >> $LOG
if [ $SEND -eq 1 ]; then
cat $MSG |mail -s "$SUBJECT" $EMAILID
fi