msoliver
(usa Debian)
Enviado em 23/11/2021 - 18:04h
carol_ianely escreveu:
Bom dia pessoal,
esou tentando fazer um script que scaneie a rede e guarde os dados encontrados em um arquivo (Até aqui OK),
mas daqui pra frente estou tendeo dificuldades extremas, pois eu quero filtrar ips adicionados ao arquivo de scan e
adiciona-lo em uma variavel, compara-la e realizar uma ação como exibir uma mensagem, enviar um email e etc
exemplo:
1 ip = cat scanrede | grep 192.168.0.10
2 if $ip eq "192.168.0.10" then
3 echo " equipamento 192.168.0.10 ficou ligado a noite "
4 fi
O sistema retorna erro na linha 2. Se alguem puder me dar uma orientação, ficarei muito grata.
Boa tarde Carol.
01 -
ip = cat scanrede | grep 192.168.0.10
Para atribuir o resultado de um comando a uma variável, faça:
ip=$(cat scanrede | grep 192.168.0.10)
Sempre que for atribuir um valor para uma VAR, não deixe espaço entre o " = "
02
2 if $ip eq "192.168.0.10" then
if [ "$ip" = "192.168.0.10" ];then....
-eq é para comparar números
= ou == compara "string"
Sugestão:
ip="192.168.0.32";
grep -qw "$ip" ips.txt && echo "$ip ficou ligado"
--------------------------------------------------------------------------------------------------------------------------
Ou
if grep -qw "$ip" ips.txt;then
echo "$ip ligado a noite "
else
echo "$ip não encontrado"
fi
Sugestão para leitura, muito útil.....
https://aurelio.net/shell/canivete/
Para verificar uma sequência de IP's,
pode usar:
for ip in 192.168.0.{1..16};do
grep -qw "$ip" ips.txt && echo "$ip ficou ligado"
done
É isso...
Note que usei o parâmetro "w" no grep,
Isso é para "casar" somente com "a palavra completa".
Outras opções são:
Usar o fim de linha "$",
Ou o limitador de borda "\b"
Veja a saída sem o w, $, ou \b, em uma lista completa de ip's:
grep "192.168.0.10" ips.txt
192.168.0.10
192.168.0.100
192.168.0.101
192.168.0.102
192.168.0.103
192.168.0.104
192.168.0.105
192.168.0.106
192.168.0.107
192.168.0.108
192.168.0.109
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________