LINUX.ORG.RU
ФорумAdmin

ping для хостов


0

0

Народ, подскажите была где-то в необъятных сетях инета програмка (скрипт), которая пингала определенные хосты и вела лог - живой хост или нет. Если кто видел, подмогите плиз. Большое спасибо.

anonymous

У меня вот такой используется, периодически запускаемое по крону:

#!/bin/bash
HOST_IP=192.168.1.1
COUNT=20
TIMEOUT=30
AWKSCRIPT=/etc/cron/testlink.awk
LOGFILE=/var/log/testlink/link-host.log
LASTLOG=/var/log/testlink/link-host.last
PRG=`basename $0`
TMPFILE=`mktemp /tmp/$PRG.XXXXXX` || exit 1
ping -c $COUNT -w $TIMEOUT -n -q $HOST_IP | awk -f $AWKSCRIPT > $TMPFILE
cat $TMPFILE > $LASTLOG
cat $TMPFILE >> $LOGFILE
rm -f $TMPFILE
exit

COUNT задает максимальное количество пингов, которое будет
отправляться на хост. TIMEOUT задает максимальное время
работы пинга, через это количество секунд он тупо прекратится,
даже если не успел отправить COUNT байт.
А в файле /etc/cron/testlink.awk содержиться следующее:

BEGIN{
    time     = systime();
    size     = "0";
    transmit = "0";
    receive  = "0";
    percent  = "100%";
    delay1   = "0";
    delay2   = "0";
    delay3   = "0";
    delay4   = "0";
}

{
   if(FNR==1) {
      size = $4;
      next;
   };

   if(FNR == 4) {

      transmit = $1;
      receive  = $4;

      if ($7 == "packet" ) {
         percent  = $6;
      } else {
         percent  = $8;
      }
      FS       = "[ /]";
      next;
   };

   if(FNR==5) {
      if (percent != "100%") {
         delay1   = $7;
         delay2   = $8;
         delay3   = $9;
         delay4   = $10;
      };
   };
   next;
}

END{
    print strftime("%d/%m/%Y %H:%M:%S", time), size, transmit, receive, percent, delay1, delay2, delay3, delay4;
}

В результате получаем журнал с постоянно накапливающейся статистикой
и файл с последними значениями. Первый удобно периодечески
просматривать, второй удобно скармливать всяким роботам.
Данные в файле выводяться в несколько столбцов: дата, время, размер
пакета, кол-во отправленных пакетов, кол-во принятых пакетов,
процент потерь, задержки min/avg/max/mdev
Этот скрипт работает на Slackware 9.1. У ping в других дистрибутивах
формат вывода, а следовательно и порядковые номера анализируемых полей
в нем, могут отличаться. Для них awk-скрипт нужно будет подогнать.

VitalkaDrug ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.