Criar teste icmp e preencher arquivo XLS

1. Criar teste icmp e preencher arquivo XLS

Rafael Baptista
rafaelbsrj

(usa Red Hat)

Enviado em 08/06/2018 - 18:49h

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.


  


2. Re: Criar teste icmp e preencher arquivo XLS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/06/2018 - 01:07h

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





3. Re: Criar teste icmp e preencher arquivo XLS

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 09/06/2018 - 10:27h

Rafael,

Você pode trabalhar com planilhas do Excel facilmente com o Python, como por exemplo utilizando o OpenPyXL:
https://openpyxl.readthedocs.io/en/stable/

O ICMP, você pode usar o PyPing:
https://pypi.org/project/pyping/

Abraço,
Diego M. Rodrigues


4. Re: Criar teste icmp e preencher arquivo XLS

Rafael Baptista
rafaelbsrj

(usa Red Hat)

Enviado em 11/06/2018 - 13:24h

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

Esse código eu devo criar um arquivo com uma extensão específica?

O arquivo resultado.csv ficará na mesma pasta que o arquivo que está o código?

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.



5. Re: Criar teste icmp e preencher arquivo XLS

Rafael Baptista
rafaelbsrj

(usa Red Hat)

Enviado em 11/06/2018 - 13:27h

diegomrodrigues escreveu:

Rafael,

Você pode trabalhar com planilhas do Excel facilmente com o Python, como por exemplo utilizando o OpenPyXL:
https://openpyxl.readthedocs.io/en/stable/

O ICMP, você pode usar o PyPing:
https://pypi.org/project/pyping/

Abraço,
Diego M. Rodrigues



Valeu Diego pela rápida resposta.

Se eu não conseguir seguir as orientações do Marcelo voltamos a nos falar.

Abraço.


6. Re: Criar teste icmp e preencher arquivo XLS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/06/2018 - 16:02h

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






7. Re: Criar teste icmp e preencher arquivo XLS

Rafael Baptista
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.


8. Re: Criar teste icmp e preencher arquivo XLS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/06/2018 - 23:35h

rafaelbsrj escreveu:

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
Sem problemas, batize com o nome que quizer...

O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O código que fiz, vai consultar onde estão os IP's e gravar o resultado em resultado.csv.

O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ).
Não!

O script que você criou buscará os IPs de forma correta?
Não vou responder!

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?
Para abrir um editor de textos não é necessário ter o modo gráfico...
Use o nano, ou outro em modo texto

"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 )?
Ou altera o script... Ou o ".csv"

"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 )?
Sim!

No script terei que mudar hostname por Site Name e ip por Site ID?
Nao entendi a necessidade dessa alteração!!!!

Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né?
Obvio!

Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Observe a saída do script (comando "echo"),
Note que existem quatro campos....


Muito obrigado mais uma vez.


Teste e veja o resultado, não existe mágica, é pura lógica.
Te passei a "receita"....
Adapte para os nomes, separadores, etc... Que deseja usar

Marcelo Oliver


9. Re: Criar teste icmp e preencher arquivo XLS

Rafael Baptista
rafaelbsrj

(usa Red Hat)

Enviado em 12/06/2018 - 10:33h

msoliver escreveu:

rafaelbsrj escreveu:

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
Sem problemas, batize com o nome que quizer...

O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O código que fiz, vai consultar onde estão os IP's e gravar o resultado em resultado.csv.

O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ).
Não!

O script que você criou buscará os IPs de forma correta?
Não vou responder!

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?
Para abrir um editor de textos não é necessário ter o modo gráfico...
Use o nano, ou outro em modo texto

"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 )?
Ou altera o script... Ou o ".csv"

"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 )?
Sim!

No script terei que mudar hostname por Site Name e ip por Site ID?
Nao entendi a necessidade dessa alteração!!!!

Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né?
Obvio!

Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Observe a saída do script (comando "echo"),
Note que existem quatro campos....


Muito obrigado mais uma vez.


Teste e veja o resultado, não existe mágica, é pura lógica.
Te passei a "receita"....
Adapte para os nomes, separadores, etc... Que deseja usar

Marcelo Oliver



Marcelo,

Bom dia.

Adaptei o script.

#!/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_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
done<teste_snmp.csv


O único local do script que tenho que trocar o ":" pela "," é depois do IFS= né?

O script que você criou buscará os IPs de forma correta?
Não vou responder!

Eu te fiz essa pergunta não duvidando do seu script, mas sim porque a primeira linha do inventário que eu tiro do sistema tem Site Name,Site ID,Resync Status e pensei que poderia atrapalhar!!!

Poderia validar o script?

Você trabalha com desenvolvimento/programação? Está empregado?



Best Regards,

Rafael Baptista


10. Re: Criar teste icmp e preencher arquivo XLS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2018 - 12:29h

rafaelbsrj escreveu:

msoliver escreveu:

rafaelbsrj escreveu:

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
Sem problemas, batize com o nome que quizer...

O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O código que fiz, vai consultar onde estão os IP's e gravar o resultado em resultado.csv.

O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ).
Não!

O script que você criou buscará os IPs de forma correta?
Não vou responder!

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?
Para abrir um editor de textos não é necessário ter o modo gráfico...
Use o nano, ou outro em modo texto

"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 )?
Ou altera o script... Ou o ".csv"

"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 )?
Sim!

No script terei que mudar hostname por Site Name e ip por Site ID?
Nao entendi a necessidade dessa alteração!!!!

Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né?
Obvio!

Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Observe a saída do script (comando "echo"),
Note que existem quatro campos....


Muito obrigado mais uma vez.


Teste e veja o resultado, não existe mágica, é pura lógica.
Te passei a "receita"....
Adapte para os nomes, separadores, etc... Que deseja usar

Marcelo Oliver



Marcelo,

Bom dia.

Adaptei o script.

#!/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_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
done<teste_snmp.csv


O único local do script que tenho que trocar o ":" pela "," é depois do IFS= né?

O script que você criou buscará os IPs de forma correta?
Não vou responder!

Eu te fiz essa pergunta não duvidando do seu script, mas sim porque a primeira linha do inventário que eu tiro do sistema tem Site Name,Site ID,Resync Status e pensei que poderia atrapalhar!!!

Poderia validar o script?

Você trabalha com desenvolvimento/programação? Está empregado?
Best Regards,

Rafael Baptista


Bom dia Rafael,
Desculpe da resposta "atravessada", não observei a existência do cabeçalho...
Nesse caso é necessário uma alteração...
Segue:
#!/bin/bash
while IFS="," read hostname ip;do let count++
(($count>1)) && {
if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then
echo $hostname:$ip:Equipamento operante:SNMP OK >> resultado_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
} || echo "Site Name:Site ID:Resync:Status" > resultado_teste_snmp.csv
done<teste_snmp.csv

Testei aqui e obtive o seguinte resultado:

Site Name:Site ID:Resync:Status
uol.com.br:200.147.67.142:Equipamento operante:SNMP NOK
router:192.168.0.1:Equipamento operante:SNMP OK
terra.com.br:208.84.244.116:Equipamento operante:SNMP NOK

OBS: Agora insere o cabeçalho no arquivo gerado.
Atualmente estou desempregado...

Att.:
marcelo oliver


11. Re: Criar teste icmp e preencher arquivo XLS

Rafael Baptista
rafaelbsrj

(usa Red Hat)

Enviado em 12/06/2018 - 13:20h

msoliver escreveu:

rafaelbsrj escreveu:

msoliver escreveu:

rafaelbsrj escreveu:

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
Sem problemas, batize com o nome que quizer...

O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O código que fiz, vai consultar onde estão os IP's e gravar o resultado em resultado.csv.

O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ).
Não!

O script que você criou buscará os IPs de forma correta?
Não vou responder!

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?
Para abrir um editor de textos não é necessário ter o modo gráfico...
Use o nano, ou outro em modo texto

"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 )?
Ou altera o script... Ou o ".csv"

"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 )?
Sim!

No script terei que mudar hostname por Site Name e ip por Site ID?
Nao entendi a necessidade dessa alteração!!!!

Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né?
Obvio!

Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Observe a saída do script (comando "echo"),
Note que existem quatro campos....


Muito obrigado mais uma vez.


Teste e veja o resultado, não existe mágica, é pura lógica.
Te passei a "receita"....
Adapte para os nomes, separadores, etc... Que deseja usar

Marcelo Oliver



Marcelo,

Bom dia.

Adaptei o script.

#!/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_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
done<teste_snmp.csv


O único local do script que tenho que trocar o ":" pela "," é depois do IFS= né?

O script que você criou buscará os IPs de forma correta?
Não vou responder!

Eu te fiz essa pergunta não duvidando do seu script, mas sim porque a primeira linha do inventário que eu tiro do sistema tem Site Name,Site ID,Resync Status e pensei que poderia atrapalhar!!!

Poderia validar o script?

Você trabalha com desenvolvimento/programação? Está empregado?
Best Regards,

Rafael Baptista


Bom dia Rafael,
Desculpe da resposta "atravessada", não observei a existência do cabeçalho...
Nesse caso é necessário uma alteração...
Segue:
#!/bin/bash
while IFS="," read hostname ip;do let count++
(($count>1)) && {
if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then
echo $hostname:$ip:Equipamento operante:SNMP OK >> resultado_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
} || echo "Site Name:Site ID:Resync:Status" > resultado_teste_snmp.csv
done<teste_snmp.csv

Testei aqui e obtive o seguinte resultado:

Site Name:Site ID:Resync:Status
uol.com.br:200.147.67.142:Equipamento operante:SNMP NOK
router:192.168.0.1:Equipamento operante:SNMP OK
terra.com.br:208.84.244.116:Equipamento operante:SNMP NOK

OBS: Agora insere o cabeçalho no arquivo gerado.
Atualmente estou desempregado...

Att.:
marcelo oliver




Opa...

Você é formado? Como pode me passar seu currículo?


Voltando ao assunto. Acho que ainda precisamos ajustar...

Quando eu tiro o inventário o cabeçalho fica da seguinte forma: Site Name,Site ID,Resync Status

Mas quando o teste for concluído, não vou precisar da coluna Resync Status e sim Status do equipamento. Mudo no script o Resync:Status por Status do equipamento?

Dúvida: O que significa as linhas abaixo? Eu imagino o que seja, mas com sua explicação, de repente terei que mudar também.

if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then



Best Regards,

Rafael Baptista


12. Re: Criar teste icmp e preencher arquivo XLS

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/06/2018 - 13:51h

rafaelbsrj escreveu:

msoliver escreveu:

rafaelbsrj escreveu:

msoliver escreveu:

rafaelbsrj escreveu:

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
Sem problemas, batize com o nome que quizer...

O arquivo que será gerado pelo inventário será o teste_snmp.csv. Esse arquivo que será consultado pelo Script?
O código que fiz, vai consultar onde estão os IP's e gravar o resultado em resultado.csv.

O arquivo que é gerado pelo inventário, a primeira linha tem as descriptions ( Site Name,Site ID,Resync Status ).
Não!

O script que você criou buscará os IPs de forma correta?
Não vou responder!

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?
Para abrir um editor de textos não é necessário ter o modo gráfico...
Use o nano, ou outro em modo texto

"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 )?
Ou altera o script... Ou o ".csv"

"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 )?
Sim!

No script terei que mudar hostname por Site Name e ip por Site ID?
Nao entendi a necessidade dessa alteração!!!!

Vou mudar o arquivo resultado.csv para resultado_teste_snmp.csv. Terei que mudar no script né?
Obvio!

Quando ele for gerado depois dos testes, ficará separado em colunas ou eu terei que depois editar o mesmo?
Observe a saída do script (comando "echo"),
Note que existem quatro campos....


Muito obrigado mais uma vez.


Teste e veja o resultado, não existe mágica, é pura lógica.
Te passei a "receita"....
Adapte para os nomes, separadores, etc... Que deseja usar

Marcelo Oliver



Marcelo,

Bom dia.

Adaptei o script.

#!/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_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
done<teste_snmp.csv


O único local do script que tenho que trocar o ":" pela "," é depois do IFS= né?

O script que você criou buscará os IPs de forma correta?
Não vou responder!

Eu te fiz essa pergunta não duvidando do seu script, mas sim porque a primeira linha do inventário que eu tiro do sistema tem Site Name,Site ID,Resync Status e pensei que poderia atrapalhar!!!

Poderia validar o script?

Você trabalha com desenvolvimento/programação? Está empregado?
Best Regards,

Rafael Baptista


Bom dia Rafael,
Desculpe da resposta "atravessada", não observei a existência do cabeçalho...
Nesse caso é necessário uma alteração...
Segue:
#!/bin/bash
while IFS="," read hostname ip;do let count++
(($count>1)) && {
if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then
echo $hostname:$ip:Equipamento operante:SNMP OK >> resultado_teste_snmp.csv
else
echo $hostname:$ip:Equipamento operante:SNMP NOK >> resultado_teste_snmp.csv
fi
else
echo $hostname:$ip:Equipamento Inoperante >> resultado_teste_snmp.csv
fi
} || echo "Site Name:Site ID:Resync:Status" > resultado_teste_snmp.csv
done<teste_snmp.csv

Testei aqui e obtive o seguinte resultado:

Site Name:Site ID:Resync:Status
uol.com.br:200.147.67.142:Equipamento operante:SNMP NOK
router:192.168.0.1:Equipamento operante:SNMP OK
terra.com.br:208.84.244.116:Equipamento operante:SNMP NOK

OBS: Agora insere o cabeçalho no arquivo gerado.
Atualmente estou desempregado...

Att.:
marcelo oliver




Opa...

Você é formado? Como pode me passar seu currículo?


Voltando ao assunto. Acho que ainda precisamos ajustar...

Quando eu tiro o inventário o cabeçalho fica da seguinte forma: Site Name,Site ID,Resync Status

Mas quando o teste for concluído, não vou precisar da coluna Resync Status e sim Status do equipamento. Mudo no script o Resync:Status por Status do equipamento?

Dúvida: O que significa as linhas abaixo?
Eu imagino o que seja, mas com sua explicação, de repente terei que mudar também.

if (($(ping -c4 $ip|grep -c 'time') >= 2));then
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then



Best Regards,

Rafael Baptista


Rafael, a minha formação é de técnico em eletrônica, em 1983 . . .
Aprendi a programar como autodidata....

Altere a linha do cabeçalho no script, é a penúltima . . .
if (($(ping -c4 $ip|grep -c 'time') >= 2));then
Traduzindo:
Se o resultado de "ping -c4 $ip|grep -c 'time'" for maior ou igual a dois:
É verdadeiro
Senão, é falso
if (($(ping -c1 -s9216 $ip|grep -c 'time') == 1));then
Se o resultado de "ping -c1 -s9216 $ip|grep -c 'time'" for igual a 1:
É verdadeiro.... Senão, é falso

marcelo oliver



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts