31 de January de 2008, por hev
Esta tarde fiz um pequeno melhoramento naquele script que criei para pingar os servidores da minha empresa, agora o usuário pode determinar tolerância para o script, assim o alarme soa de acordo com uma porcentagem de perda determinada pelo usuário, e a quanidade de if’s também foi reduzida.
#!/bin/bash
clear
#Script para teste de internet
#inicializando tolerância
if [ $3 -le 0 ]
then
tlr=0 # tlr -> tolerância
else
tlr=$3
fi
check() ##FUNCAO Q FAZ OS TESTES DE PING
{
ping -c $1 $2 > pingtemp.txt 2> temperro.txt # o temperro.txt recebe tudo q vai para saida de erro
nome=$2
#send=`mutt -s "INNOVUS MONITORAMENTO DE INTERNET" hevandersons@gmail.com`
if [ -s temperro.txt ] #verifica se o arquivo é maior que zero, ou seja, se houve erro
then
echo "|> ERRO DE CONEXÃO, EXPERIMENTE:"
echo "|> CHECAR SE O ENDEREÇO ESTÁ CORRETO"
echo "|> CHECAR OS CABOS DE REDE"
sleep 3
else
#Não houve erros
sleep 1
ppack=`grep received pingtemp.txt | cut -f6 -d " " | cut -f1 -d%`
if [ $ppack -eq 0 ]
then
msg="Nenhuma perda de pacote, conexão com $nome perfeita"
elif [ $ppack -gt $tlr ]
then
msg="ALERTA GRAVE: perda de pacotes acima do normal"
ring2 #ring de emergencia
#send()
elif [ $ppack -eq 100 ]
then
msg="ALERTA GRAVE: PERDA TOTAL DE PACOTES, VERIFICAR CONEXÃO DE REDE"
ring2 #ring de emergencia
send()
fi
fi
}
log() #GRAVA OS LOGS NAS PASTAS
{
echo "TESTE AS -> `date +%T`" >> `date +%d_%m_%Y.log`
cat pingtemp.txt >> `date +%d_%m_%Y.log`
echo >> `date +%d_%m_%Y.log`
}
send() #MANDA E-MAIS
{
echo $msg | mutt -s "INNOVUS MONITORAMENTO EM $nome" hevandersons@gmail.com -c hev@mundohev.com
}
ring() #alertas de lentidão
{
beep -f 523.2 48 -l 10 -r 3 && beep -f 493.9 48 -r 4
}
ring2() #alertas de lentidão
{
beep -f 277.2 -l 500 -r 16
}
if [ -d $2 ]
then
cd $2
check $1 $2
log
else
mkdir $2
cd $2
check $1 $2
log
fi
Postado em Linux, Programação, shell script | Comentar »
22 de January de 2008, por hev
Estava lendo os tutoriais de dialog do Aurélio, para colocar em algum script meu, quando tive a idéia de criar uma espécie de utilitário “gráfico” para agilizar as coisas que eu mais faço no meu linux: usar apache, mysql e php. Na verdade, o script não faz nada de revolucionário: eu o criei para realizar tarefas corriqueiras como reiniciar ou parar o apache e o mysql ou editar os arquivos de configuração, só pra não ter que digitar linhas (por mais que o TAB ajude) como /etc/init.d/apache2 stop , é claro, eu poderia ter criado atalhos, mas assim eu não treinaria shell script hehe.
O Ubuntu não vem com dialog instalado, utilize:
$ sudo apt-get install dialog
como o código ficou um pouco grande, vou deixar um screen, baixe o código neste link. O script deve ser executado com usuário root:
Postado em Linux, Open Source, Programação, shell script | Comentar »
19 de January de 2008, por hev
Pra quem não gosta do phpMyAdmin, ou está à procura de uma alternativa, está disponível via apt alguns aplicativos do pacote MySQL GUI Tools, falo do MySQL Administrator (Ferramenta para gerenciar os BD’s) e do MySQL Query Browser (Ferramenta para fazer consultas em Tabelas).
$ sudo apt-get install mysql-admin mysql-query-browser


Até mais, Fiquem com Deus!
Postado em Dicas, Linux, Programação, Web | Comentar »
10 de January de 2008, por hev
Certo dia, na empresa onde estou como estagiário, surgiu a necessidade de se monitorar, de tempos em tempos, se um servidor estava on-line ou não, havia um script responsável por isso, no caso de perda total de pacotes (ou seja, servidor inacessível) um e-mail de alerta era enviado aos administradores e para equipe de suporte técnico da empresa (da qual faço parte). Acontece, que muitas vezes não estávamos com a caixa de email aberta ou a mensagem passava despercebida dentre muitas outras, então veio do gerente a sugestão de fosse soado um alarme no caso do servidor ficar off-line. Outros problemas que haviam no script antigo era que o mesmo só reportava o erro quando havia perda total de pacotes, se houvesse perda parcial, nem ficávamos sabendo.
Pra sanar os problemas criei um segundo script, que além de mandar e-mails, soa um alarme quando há perda de pacotes e gera logs organizados por sites/IPs pingados. Como os computadores da empresa não tem caixas de som, o alarme não é a execução de um arquivo de áudio, mas sim um toque no speaker da máquina ( gerado com o comando beep )
Para o script funcionar perfeitamente, você deve ter o sendmail e o mutt configurados na sua máquina e configurá-lo no cron para rodar automaticamente, deve-se também instalar o programa beep:
$ sudo apt-get install beep
O que o script faz:
- Ele pinga o endereço indicado, por uma quantidade de vezes determinada pelo usuário
- Ele cria um diretório para armazenar os logs dos sites pingados
- Dentro deste diretório ele redireciona as saídas padrão e de erro para arquivos te texto (pingtemp.txt e temperro.txt)
- Ele pinga o endereço e verifica a porcentagem de pacotes perdidos
- A partir de 20% de perda de pacotes, o alarme soa
- A saída do comando fica no arquivo pingtemp.txt
- Com o comando cat o conteúdo de pigtemp.txt é adicionado ao log, cujo nome é o dia em que o teste foi executado
Sintaxe: ./chkping.sh [Numero de pacotes] [endereço web ou IP]
Vamos ao código:
#!/bin/bash
clear
#Script para teste de internet
check() ##FUNCAO Q FAZ OS TESTES DE PING
{
ping -c $1 $2 > pingtemp.txt 2> temperro.txt # o temperro.txt recebe tudo q vai para saida de erro
nome=$2
#assunto=`MONITORAMENTO DE INTERNET DO HEV`
#send=`mutt -s "MONITORAMENTO DE INTERNET DO HEV" hevandersons@gmail.com`
if [ -s temperro.txt ] #verifica se o arquivo é maior que zero, ou seja, se houve erro
then
echo "|> ERRO DE CONEXÃO, EXPERIMENTE:"
echo "|> CHECAR SE O ENDEREÇO ESTÁ CORRETO"
echo "|> CHECAR OS CABOS DE REDE"
sleep 3
else
#echo "Não houve erros"
sleep 1
ppack=`grep received pingtemp.txt | cut -f6 -d " " | cut -f1 -d%`
if [ $ppack -eq 0 ]
then
msg="Nenhuma perda de pacote, conexão com $nome perfeita"
#ring
elif [ $ppack -gt 0 -a $ppack -le 5 ]
then
echo "ALERTA: Perda entre 1 e 5 % dos pacotes transmitidos"
elif [ $ppack -gt 5 -a $ppack -le 10 ]
then
echo "ALERTA: Perda entre 5 e 10 % dos pacotes transmitidos"
elif [ $ppack -gt 10 -a $ppack -le 20 ]
then
msg="ALERTA: Perda entre 10 e 20 % dos pacotes transmitidos"
ring
elif [ $ppack -gt 20 -a $ppack -le 30 ]
then
msg="ALERTA: Perda entre 20 e 30 % dos pacotes transmitidos"
ring
elif [ $ppack -gt 30 -a $ppack -le 40 ]
then
msg="ALERTA: Perda entre 30 e 40 % dos pacotes transmitidos"
ring
elif [ $ppack -gt 40 -a $ppack -le 50 ]
then
msg="ALERTA: Perda entre 40 e 50 % dos pacotes transmitidos"
ring
elif [ $ppack -gt 50 -a $ppack -lt 100 ]
then
msg="ALERTA GRAVE: mais de 50 % dos pacotes transmitidos foram perdidos"
ring2 #ring de emergencia
elif [ $ppack -eq 100 ]
then
msg="ATERTA GRAVE: PERDA TOTAL DE PACOTES, VERIFICAR CONEXÃO DE REDE"
ring2 #ring de emergencia
fi
fi
}
log() #GRAVA OS LOGS NAS PASTAS
{
echo "TESTE AS -> `date +%T`" >> `date +%d_%m_%Y.log`
cat pingtemp.txt >> `date +%d_%m_%Y.log`
echo >> `date +%d_%m_%Y.log`
}
send() #MANDA E-MAIS
{
echo $msg | mutt -s "MONITORAMENTO EM $nome" hev@mundohev.com -c hevandersons@gmail.com
}
ring() #alertas de lentidão
{
beep -f 523.2 48 -l 10 -r 3 && beep -f 493.9 48 -r 4
}
ring2() #alertas de lentidão
{
beep -f 277.2 -l 500 -r 16
}
if [ -d $2 ]
then
cd $2
check $1 $2
log
else
mkdir $2
cd $2
check $1 $2
log
fi
O grande probema deste script é o fato de ser baseado em porcentagens, mas aí basta usar o bom senso na hora de determinar o número de pacotes (de tentativas)
Baixar Script
É isso, fiquem com Deus, até a pŕoxima
Postado em Linux, Open Source, Programação, shell script | 4 Comentários »