[+] brak ping i powiadamianie na email

Tematy związane z oprogramowaniem, instalacją, konfiguracją
raczkowski1
Beginner
Posty: 124
Rejestracja: 04 lipca 2007, 10:08

[+] brak ping i powiadamianie na email

Post autor: raczkowski1 »

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.
Awatar użytkownika
darkwater
Junior Member
Posty: 828
Rejestracja: 25 stycznia 2007, 14:01
Lokalizacja: Częstochowa

Post autor: darkwater »

Prawdopodobnie interesuje cię pakiet fping. W manie do niego jest nawet przykładowy skrypt w perlu realizujący takie powiadamianie via email.
winnetou

Post autor: winnetou »

Dziękuje...
raczkowski1
Beginner
Posty: 124
Rejestracja: 04 lipca 2007, 10:08

Post autor: raczkowski1 »

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
ODPOWIEDZ