Linux

Testando porta local no Linux

667 views
Nenhum comentário
0
(0)

Em algum momento já teve que testar a resposta de uma porta qualquer repetidamente? Fez isso via linha de comando? Que tal um script gerando logs? Vamos aos detalhes…

Em certa ocasião, uma determinada aplicação passou a oscilar, simplesmente fechando a porta de conexão.Quando não se tem muitas informações em mãos, um bom inicio é gerar log de conexão. Com os dados salvos em arquivo, podemos analisar quantas vezes a conexão falha num determinado espaço de tempo. O bom disso tudo, via script! Vamos deixar que o S.O. faça o trabalho sujo.
Para este teste utilizamos uma ISO do CentOS, na versão 6.4

Inicialmente, verifique se possui o “netcat” instalado, o comando é “nc”.
Caso não esteja instalado, mãos a obra e vamos instalar:

yum install -y nc
com o comando instalado, crie o arquivo de script na pasta desejada, utilizamos o /tmp
cd /tmp
vim conexão.sh
Dentro do arquivo, insira as seguintes linhas de código:
#!/bin/bash
nctest=”/usr/bin/nc -z -w 20″
server=”192.168.1.102″ #aqui voce defini o IP.
porta=”22″ #aqui voce defini a porta monitorada.
data=$(date)
$nctest $server $porta > /dev/null 2>&1
if [ $? != 0 ] ; then
echo “$data Servidor ($server) porta $porta FALHOU” >> /tmp/teste_porta.log
else
echo “$data Servidor ($server) porta $porta OK” >> /tmp/teste_porta.log
fi
Lembrar de dar permissão de execução para o script
chmod 777 conexão.sh
Explicando o conteúdo do código:
– a variável “nctest” irá chamar o comando netcat
– a variável “server” irá definir o servidor monitorado, IP local.
– a variável “porta” defini a porta a ser monitorada
– a variável “data” recebe data e hora local do sistema, para facilitar nos logs.

Executando o Script:
A execução é simples, poderá feita de forma manual

./conexão.sh
Como a idéia é deixar que o S.O. trabalhe por nós, vamos adicionar a execução do script na crontab do Linux, e gerar uma execução por minuto.
vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs
# Example of job definition:
# .—————- minute (0 – 59)
# | .————- hour (0 – 23)
# | | .———- day of month (1 – 31)
# | | | .——- month (1 – 12) OR jan,feb,mar,apr …
# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * * root ./tmp/conexao.sh

Por fim seu script estará executando, caso queira acompanhar a saída, utilize o comando tailf
tailf /tmp/teste_porta.log
A saída será a seguinte:
[root@localhost /]# tailf /tmp/teste_porta.log
Ter Out 7 16:32:53 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 16:34:08 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 16:34:25 BRT 2014 Servidor (192.168.1.102) porta 20 FALHOU
Ter Out 7 16:38:44 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 17:37:01 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 17:38:01 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 17:39:01 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 17:40:01 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Ter Out 7 17:41:01 BRT 2014 Servidor (192.168.1.102) porta 22 OK
Note que em determinado momento, alteramos propositalmente a porta para “20” forçando uma falha.
Espero que ajude, qualquer dúvida escreva e recomende a dica para o pessoal.
Abraços!
André Francisco Gotardo

O que você achou disso?

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Como você achou esse post útil...

Ajude o site a crescer compartilhando o conteúdo

Lamentamos que este post não tenha sido útil para você!

Vamos melhorar este post!

Diga-nos, como podemos melhorar este post?

Tags: linux, script, teste de porta

Artigos Relacionados

Gostou do conteúdo? Deixe seu comentário

Secured By miniOrange