pingping - Verificando conexão com servidores.
Ai em baixo meu script pingping. Ele vai alertar os emails quando algum servidor parar. Leia ele :).
#!/bin/sh
# Este script pinga servidores na lista da variavel SERVIDORES e envia
# emails para os emails da lista da variavel LISTA_EMAILS alertando caso
# eles caiam. O script só alerta se na última vez que ele testou o
# servidor estiver em pé ou se o servidor não foi testado ainda.
#
# Autor: Felipe Rafael Prenholato - chronos@gentoobr.org
# IRC: nick chronos in #gentoo-br or #sancalivre at irc.freenode.net
# Data: 21 de Junho de 2006.
#
# Este script está coberto sobre a licença GPLv2 e disponível via
# pedido por e-mail. Qualquer alteração por favor envie para o criador
# do script.
# Variavel SERVIDORES: lista de servidores separados por espaço.
# Se colocar nomes em vez de IPs certifique-se de que o servidor em que o script
# rodar resolva o ip.
SERVIDORES="elise prime odissey"
# Variavel LISTA_EMAILS: lista de emails separados por espaço
LISTA_EMAILS="chronos@gentoobr.org philipe_rp@yahoo.com.br"
# Formato da data a ser enviada no e-mail.
data=$(date +"%T de %d/%m/%Y")
# função que pinga o servidor e envia email.
ping_server() {
# variaveis locais usadas
local pingreturn
local serversts
local TMPFILE
local server
server=$1
TMPFILE="/tmp/ping_$server.tmp"
# Debug
#echo "Servidor: $server"
#echo "Arquivo temporario: $TMPFILE"
# pinga servidor e pega retorno.
ping -c3 $server &>/dev/null;
pingreturn=$?;
# Debug
#echo "Ping retornou $pingreturn para $server"
# Se pingreturn for 0 o servidor foi pingado.
if [ "$pingreturn" == "0" ]
then
echo "1" > $TMPFILE
fi
# Se pingreturn for 1 o servidor não foi pingado.
if [ "$pingreturn" == "1" ]
then
# Se $TMPFILE não existir cria ele.
if ! [ -e $TMPFILE ]
then
# Debug
#echo "$TMPFILE não existe, criando com valor 1."
echo "1" > $TMPFILE
fi
# pega status do servidor, 1 é pingado, 0 é não pingado.
serversts=$(cat $TMPFILE)
# Debug
#echo "Valor de $TMPFILE: $serversts"
# se ele estava de pé (valor 1) caiu agora, grava valor 0 em
# $TMPFILE e manda email.
if [ "$serversts" == "1" ]
then
echo "0" > $TMPFILE
msg="Servidor $server fora do ar em $data. Contatar responsavéis."
ass="Servidor $server fora do ar."
LC_ALL="en_US.ISO-8859-1" echo "$msg" | mail -s "$ass" $LISTA_EMAILS
fi
fi
}
# roda ping_server para cada servidor.
for e in $(echo $SERVIDORES);
do
ping_server $e;
done
Ele precisa ser instalado em um servidor que possa pingar os demais e enviar emails. Versões antigas do postfix não vão funcionar, tem q suportar a opção -a no comando mail, seu uso é:
./script
Coloque ele para rodar no cron e fique numa boa
About this entry
You’re currently reading “pingping - Verificando conexão com servidores.,” an entry on CHRONOSBOX.ORG / BLOG
- Published:
- 06.25.07 / 12pm
- Category:
- Planet GentooBR, Dicas, Servidores, Linux
No comments
Jump to comment form | comments rss [?] | trackback uri [?]