Script que pinga determinado IP e ao dar negativo executa determinado comando.

1. Script que pinga determinado IP e ao dar negativo executa determinado comando.

Mateus
MAPS

(usa CentOS)

Enviado em 26/11/2020 - 15:12h

Boa tarde.
Prezados.

Estou precisando de um script que funcionaria da seguinte forma.

Ao executar o script ./script (irei colocar na crontab para ser executado de em 5 minutos ou após o reboot depois de 1 minuto). Quanto ao crontab sei colocar.
O que não consegui foi desenvolver o script.

Ao executar o script ele pinga determinado IP.
Dando negativo (máquina offline) ele executa outro script, no caso ./teste1.sh
Dando positivo (máquina online) ele não executa o script e apenas sai.
Utilizo CentOS 7.

Poderia enviar apenas 10 pacotes e não pacotes inderminados.
Vi algo sendo construído assim neste site, porém lá estavam desenvolvendo algo que pingaria o IP e dando positivo (online) ele executaria o comando. Preciso disso na função inversa.
https://unix.stackexchange.com/questions/184266/bash-ping-script-file-for-checking-host-availability

Irei rodar esse script em duas máquinas diferentes para ligar um programa. Porém somente preciso que ligue caso a outra máquina fique offline.
Poderiam ajudar?
Grato desde já.
Obrigado.


  


2. Re: Script que pinga determinado IP e ao dar negativo executa determinado comando.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/11/2020 - 17:01h


MAPS escreveu:

Boa tarde.
Prezados.

Estou precisando de um script que funcionaria da seguinte forma.

Ao executar o script ./script (irei colocar na crontab para ser executado de em 5 minutos ou após o reboot depois de 1 minuto). Quanto ao crontab sei colocar.
O que não consegui foi desenvolver o script.

Ao executar o script ele pinga determinado IP.
Dando negativo (máquina offline) ele executa outro script, no caso ./teste1.sh
Dando positivo (máquina online) ele não executa o script e apenas sai.
Utilizo CentOS 7.

Poderia enviar apenas 10 pacotes e não pacotes inderminados.
Vi algo sendo construído assim neste site, porém lá estavam desenvolvendo algo que pingaria o IP e dando positivo (online) ele executaria o comando. Preciso disso na função inversa.
https://unix.stackexchange.com/questions/184266/bash-ping-script-file-for-checking-host-availability

Irei rodar esse script em duas máquinas diferentes para ligar um programa.
Porém, somente preciso que ligue caso a outra máquina fique offline.
Poderiam ajudar?
Grato desde já.
Obrigado.

Boa tarde, MAPS.
Bem simples
if ping -c10 $IP &>/dev/null;then
echo "ON Line";
else
echo "OFF Line";
fi

"IF NEGADO"
if ! ping -c10 $IP &>/dev/null;then
echo "OFF Line";
fi

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



3. Re: Script que pinga determinado IP e ao dar negativo executa determinado comando.

Mateus
MAPS

(usa CentOS)

Enviado em 27/11/2020 - 12:07h

Marcelo, obrigado pela resposta.
Porém ainda não consegui compreender como funcionaria esse código que você me passou.

Criei um arquivo com todo o conteúdo. (teste.sh)



#!/bin/sh

if ping -c10 $IP &>/dev/null;then
echo "ON Line";
else
echo "OFF Line";
fi

if ! ping -c10 $IP &>/dev/null;then
echo "OFF Line";
fi



Dei chmod 777 no teste.sh
Ao executar responde da seguinte forma.

[root@root ~]# ./teste.sh
-bash: ./teste.sh: /bin/sh^M: bad interpreter: No such file or directory
[root@root ~]#

Aonde colocaria neste caso para executar o segundo script .sh (programa.sh) (/home/programa.sh)

Desejo rodar o ./teste.sh (com a função do ping no ip, dando positivo significa que a máquina esta online e nada faz, dando negativo significa que a máquina está offline, estando offline ele executaria o script (programa.sh). O programa.sh ligaria o serviço que preciso.

Quanto ao c10 entendo que seria os 10 pacotes enviados, mas não compreendi como ficaria esse código e também executando o programa.sh

Obrigado desde já.



4. Re: Script que pinga determinado IP e ao dar negativo executa determinado comando.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/11/2020 - 16:57h

MAPS escreveu:

Marcelo, obrigado pela resposta.
Porém ainda não consegui compreender como funcionaria esse código que você me passou.

Criei um arquivo com todo o conteúdo. (teste.sh)



#!/bin/sh

if ping -c10 $IP &>/dev/null;then
echo "ON Line";
else
echo "OFF Line";
fi

if ! ping -c10 $IP &>/dev/null;then
echo "OFF Line";
fi



Dei chmod 777 no teste.sh
Ao executar responde da seguinte forma.

[root@root ~]# ./teste.sh
-bash: ./teste.sh: /bin/sh^M: bad interpreter: No such file or directory
[root@root ~]#

Aonde colocaria neste caso para executar o segundo script .sh (programa.sh) (/home/programa.sh)

Desejo rodar o ./teste.sh (com a função do ping no ip, dando positivo significa que a máquina esta online e nada faz, dando negativo significa que a máquina está offline, estando offline ele executaria o script (programa.sh). O programa.sh ligaria o serviço que preciso.

Quanto ao c10 entendo que seria os 10 pacotes enviados, mas não compreendi como ficaria esse código e também executando o programa.sh

Obrigado desde já.

Boa tarde.
Porém ainda não consegui compreender como funcionaria esse código que você me passou.

if ping -c10 $IP &>/dev/null;then #executa o ping, (dentro do condicional) direciona "toda" saída para "/dev/null", nada do ping é mostrado na tela.
echo "ON Line"; #Se está online
else
echo "OFF Line"; # Se NÃO está online
fi
#Este outro, só checa se está off line, observe a "!" antes do ping,
#Traduzindo, Se NÃO pingar, escreve "OFF Line" na tela.
if ! ping -c10 $IP &>/dev/null;then
echo "OFF Line";
fi

-bash: ./teste.sh: /bin/sh^M: bad interpreter: No such file or directory
Criou o script no windows?
Esse ^M é o fim de linha do windows
Não É PARA usar OS DOIS CONDICIONAIS!!!
São EXEMPLOS!
USe um ou outro.
Também não é recomendado chamar outro script,
use funções!
Qual função do "no ip"?
O "script" para ativar o "NO IP", é isso?
Há muito tempo, usei esse serviço, e só tive problemas....
Inúmeras tentativas de login, originadas de vários locais do mundo!


______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts