Script de monitoramento de host por icmp (ping )

Publicado por José Guilherme 24/11/2004

[ Hits: 22.999 ]

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                       #
#                         <jgcr@pop.com.br>                                   #
#                                                                             #
###############################################################################
#                                                                             #
# 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: <jgcr@pop.com.br>;
#
###############################################################################

#
# 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

Gravar uma imagem ISO em um CD-R

Compactar e descompactar arquivos de forma simples

Shell Script para instalação do ePSXe no Ubuntu

Cadastrando e removendo usuários do SAMBA com um script

Somatório de valores do comando ps


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts