rafaelbsrj
(usa Red Hat)
Enviado em 11/06/2018 - 20:28h
msoliver escreveu:
rafaelbsrj escreveu:
msoliver escreveu:
rafaelbsrj escreveu:
Senhores,
Boa noite.
Preciso criar uma forma no linux ( red hat ) de testar conectividade icmp em vários IPs.
Esses IPs eu tiro de um inventário que é gerado em excel onde eu tenho o hostname do elemento ( coluna A ) e o IP ( coluna B ).
A minha idéia é que o comando consulte essa planilha e faça o seguinte:
Ping o primeiro IP e teste a conectividade. Se o teste não for satisfatório preencher a coluna C como "Equipamento Inoperante". Se o teste for satisfatório pingar novamente com o tamanho do pacote em 9216 bytes. Se tiver resposta, informar na coluna D "Equipamento operante - SNMP OK", senão "Equipamento operante - SNMP NOK".
Fico no aguardo de um retorno positivo.
Boa noite Rafael.
Ao meu ver, o modo mais pratico é salvar essa planilha em ".csv".
Feito isso, é simples....
Faça um "laço" com o while, "pegue" o ip de cada linha e execute o ping...
Exemplo:
OBS: O separador de campo (IFS), neste caso, é ":" (sem as aspas)
#!/bin/bash
while IFS=":" read hostname ip;do
if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c4 -s9216 $ip|grep -c 'time') >= 2));then
echo $hostname:$ip:Equipamento operante:SNMP OK >> resultado.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado.csv
fi
done<testes.csv
Marcelo Oliver
Marcelo,
Obrigo pela resposta célere!
Pouco conheço de Linux e muito menos programação. rsrsrs
Esqueci de comentar que o linux está num servidor remoto.
Eu acesso via SSH e dele pingo os elementos que serão testados.
Se você puder fazer um passo-a-passo ficarei grato.
Tipo...
1) Esse código eu devo criar um arquivo com uma extensão específica?
2) O arquivo resultado.csv ficará na mesma pasta que o arquivo que está o código?
3) Essa programação que você criou testará todos os IPs que estiver na minha planilha e preencherá a mesma?
Desculpe pelas perguntas!
Desde já agradeço.
Boa tarde Rafael, vamos as respostas:
1) Não é necessário, mas por questões de organização, sempre uso a extensão "sh" de Shell Script.
2) Sim.
3) Testará todos que estiverem no "ARQUIVO.csv", e será gerado o arquivo "resultado.csv", que abre com o excell.
Passo a Passo:
Conecte no servidor.
Abra um editor de textos, cole o código que criei,
Salve com o nome, Testes_Rede.sh,
Abra um terminal, na mesma pasta onde salvou o "Testes_Rede.sh", e execute o comando:
chmod +x Testes_Rede.sh
Isso é para dar permissão de execução ao script.
Abra a planilha com os "IP's", e salve como ".csv", use o ":" (dois pontos), como separador de campo.
Observe que no script, tal arquivo tem o nome
"testes.csv" (ultima linha do código)
Abra o arquivo.csv e certifique-se que existe um ip por linha.... E, os campos separados por ":"
Agora é só executar o "script", com o comando:
./Testes_Rede.sh
OBS: o arquivo "testes.csv" deve ficar na mesma pasta do Script.
Att.:
Marcelo Oliver
Fala aí Marcelo beleza?
Vamos lá...
- Escolhi o nome do arquivo que terá o script e será teste_snmp.sh;
O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ). O script que você criou buscará os IPs de forma correta?
No seu passo-a-passo estou com dúvidas:
"Abra um editor de textos, cole o código que criei"
Esse servidor que eu uso é só linha de comando, não tem GUI. Tem como eu chamar o editor via CLI, colar o script e salvar? Poderia me explicar como faz?
"Abra a planilha com os "IP's", e salve como ".csv", use o ":" (dois pontos), como separador de campo"
O separador de campo no arquivo gerado pelo inventário é ",". Terei que mudar no script ou substituo a "," por ":" ( sem aspas )?
"Observe que no script, tal arquivo tem o nome "testes.csv" (ultima linha do código)"
No final do script mudo para o nome do arquivo que escolhi ( teste_snmp.csv )?
No script terei que mudar hostname por Site Name e ip por Site ID?
Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né? Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Muito obrigado mais uma vez.