Script de monitoramento de host por icmp (ping )

Publicado por José Guilherme 24/11/2004

[ Hits: 20.902 ]

Download monitor.sh




Script de monitoramento de host através de pacotes icmp, que eu uso aqui no meu trabalho. O script cira um arquivo com o nome do host do cliente e a data em que foi executado, contendo as estatísticas dos pings. A principal utilidade dele mesmo era pra saber que horas o host responde e como está o link até ele, se está tendo perdas, tempo de resposta alto em determinado horário. Uso ele para monitorar links de rádio.

  



Esconder código-fonte

#!/bin/bash

###############################################################################
#                                                                             #
#                               MONITOR.SH                                    #
#               Script de monitoramento de clientes por icmp                  #
#                                                                             #
#                         Versão 0.1 de 1/7/2004                              #
#                                                                             #
#                  Autor: José Guilherme Camara Ribeiro                       #
#                         <[email protected]>                                   #
#                                                                             #
###############################################################################
#                                                                             #
# Copyright (C) 2003 Free Software Foundation, Inc.                           #
#                                                                             #
# This script is free software; you can redistribute it and/or modify         #
# it under the terms of the GNU General Public License as published by        #
# the Free Software Foundation; either version 2, or (at your option)         #
# any later version.                                                          #
#                                                                             #
# This program is distributed in the hope that it will be useful,             #
# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
# GNU General Public License for more details.                                #
#                                                                             #
# You find more about GPL at http://www.gnu.org.                              #
#                                                                             #
###############################################################################
#
# Descrição:
# 
#       Script de monitoramento de conexão de clientes através de pacotes 
# icmp. O script cira um arquivo com o nome do host do cliente e a data em 
# que foi executado, contendo as estatísticas dos pings.
#
#==============================================================================
#
# Funcionamento:
#
#       Logo que é executado o script cria um arquivo do tipo texto com o
# nome na seguinte estrutura:
#
#           [host]-[data]-[hora].txt
#           |      |      |
#           |      |      \_ Hora inicial em que foi executado no formato
#           |      |         HH:MM:SS
#           |      |
#           |      \_ Data inicial em que foi executado no formato
#           |         DD_MM_AAAA
#           | 
#           \_ Host do cliente, pode ser nome ou ip.
#
#       São passado os se seguintes parâmetros para o script:
# host:        Host do cliente ou ip.
# nºpacotes:   Número de pacotes que são disparados em seqüência contra o 
#              cliente, geralmente costuma-se usar 100.
# nºexecuções: Depois que são disparados contra o cliente a quantidade de
#              pacotes especificada, o script encerra um execução e grava no
#              arquivo a estatística dessa execução.
# sleep:       Tempo de espera entre as execuções. Para um monitoramento
#              diário não é necessário que as execuções sejam seguidas, sendo
#              assim, pode-se espaçar as execuções, por exemplo, de meia em 
#              meia hora (30m) ou de acordo com a necessidade. É por padrão 
#              especificado em segundos, mas também aceita opções para minutos
#              (ex. 1m), horas (ex. 2h) ou dias (ex. 3d).
# 
# 
#       Dentro do arquivo é gravado a cada execução a saída do comando ping,
# na seguinte estrutura:
#
#          _ Data e hora em que se iniciou a execução
#         /
#         |
#         01_07_2004-14:04:58
#         --- debianmm.debian.psi.br ping statistics ---
#       __3 packets transmitted, 3 packets received, 0% packet loss
#      /  round-trip min/avg/max = 0.3/0.3/0.4 ms
#      |                           |   |    |
#      |                           |   |    \_ menor tempo de resposta
#      |                           |   |
#      |                           |   \_ média dos tempos de resposta
#      |                           |
#      |                           \_ maior tempo de resposta
#      |
#      \_ nº de pacotes enviados, recebidos e porcentagem de perda
#
#       Se forem várias as execuções dentro do arquivo estarão separadas em
# blocos.
#
#==============================================================================
#
# Notas:
# 
#    - Clientes com firewall talvez não possam ser monitorados por icmp;
#    - Dúvidas ou sugestões mail to: <[email protected]>;
#
###############################################################################

#
# Início do script.
#

case $1 in
   -h | --help )
      echo "usage: monitor.sh host nºpacotes nºexecuções sleep"
      echo "   para mais informações use \"--help-full\""
   ;;
   --help-full )
      echo "usage: monitor.sh host nºpacotes nºexecuções sleep
   Monitoramento de clientes por pacotes icmp.
   
   host      host ou ip do cliente
   nºpacotes   quantidade de pacotes icmp disparados
         initerruptamente
   nºexecuções   número de vezes que o cliente será monitorado
   sleep      tempo de espera entre os monitoramentos
"
   ;;
   *)
      data=`date +%d_%m_%Y-%H:%M:%S`
      arquivo=$1-$data.txt
      for ((a=1; a <= $3 ; a++))
      do
         data=`date +%d_%m_%Y-%H:%M:%S`
         echo >> $arquivo
         echo "################################################################################" >> $arquivo
         echo >> $arquivo
         echo $data >> $arquivo
         ping -c $2 $1 | grep -A2 statistics >> $arquivo
         sleep $4
      done
   ;;
esac
exit 0

Scripts recomendados

Script Basico para Tunnel Broker

Firewall para web server

Listar e desconectar usuarios conectados no DB Progress 9.1c/d

Equacao de Segundo Grau em Dialog

Conectar em rede Wireless


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário