Ajuda!! Script monitorando IP, editando arquivo de Node e reiniciando serviço.

1. Ajuda!! Script monitorando IP, editando arquivo de Node e reiniciando serviço.

Tiago das neves rodrigues
okinaua

(usa Ubuntu)

Enviado em 31/12/2019 - 11:54h

Olá amigos da Comunidade Viva o Linux, bom eu já usei varias dicas aqui e até consegui aprender alguma coisinha de linux, pois bem, agora estou com uma missão que não sei por onde começar e achei muito interessante caso funcione.
Bom eu tenho um Node destes de cripto moedas que para funcionar corretamente em tese precisaria de um IP fixo declarado na rede, acontece que ele funciona muito bem em um IP dinâmico até que a operadora troque o IP hahaha.
Então tive uma ideia.
Seria possível eu monitorar meu IP, e se caso ele mudar, um script ou algo automaticamente mudar o IP no arquivo node.conf em seguida reiniciar o serviço?
Qualquer ajuda ou dica de ferramenta será bem vinda.

No arquivo node.conf tem uma linha assim:
# declared-address = "1.2.3.4:6863"

Eu paro o serviço assim
systemctl stop node.service

Eu inicio o serviço assim
systemctl start node.service




  


2. Re: Ajuda!! Script monitorando IP, editando arquivo de Node e reiniciando serviço.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 31/12/2019 - 15:00h


okinaua escreveu:

Olá amigos da Comunidade Viva o Linux, bom eu já usei varias dicas aqui e até consegui aprender alguma coisinha de linux, pois bem, agora estou com uma missão que não sei por onde começar e achei muito interessante caso funcione.
Bom eu tenho um Node destes de cripto moedas que para funcionar corretamente em tese precisaria de um IP fixo declarado na rede, acontece que ele funciona muito bem em um IP dinâmico até que a operadora troque o IP hahaha.
Então tive uma ideia.
Seria possível eu monitorar meu IP, e se caso ele mudar, um script ou algo automaticamente mudar o IP no arquivo node.conf em seguida reiniciar o serviço?
Qualquer ajuda ou dica de ferramenta será bem vinda.

No arquivo node.conf tem uma linha assim:
# declared-address = "1.2.3.4:6863"

Eu paro o serviço assim
systemctl stop node.service

Eu inicio o serviço assim
systemctl start node.service


Boa tarde Okinaua.
Segue script para monitorar o IP Público.
#!/bin/bash

IPPV="0.0.0.0" #Coloque o Ip Publico, Somente na 1ª utilização
SED="/bin/sed"
IPPN=$(/usr/bin/wget -qO- http://ip-api.com/line/?fields=query)

if [[ "${IPPN}" != "${IPPV}" ]];then
${SED} -ri "/^IPPV/s/\".*\"/\"${IPPN}\"/" $0;
printf "\n%(%x%t%t%X)T\nIP Público: ${IPPN}\n" #TESTES
#Coloque aqui os Comandos desejados.
fi


Recomendo colocar o script no "cron".
Se atualmente nada é alterado no arquivo node.conf,
acredito que reiniciar o serviço, é o suficiente.
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


3. Re: Ajuda!! Script monitorando IP, editando arquivo de Node e reiniciando serviço.

Tiago das neves rodrigues
okinaua

(usa Ubuntu)

Enviado em 31/12/2019 - 18:03h

msoliver escreveu:


okinaua escreveu:

Olá amigos da Comunidade Viva o Linux, bom eu já usei varias dicas aqui e até consegui aprender alguma coisinha de linux, pois bem, agora estou com uma missão que não sei por onde começar e achei muito interessante caso funcione.
Bom eu tenho um Node destes de cripto moedas que para funcionar corretamente em tese precisaria de um IP fixo declarado na rede, acontece que ele funciona muito bem em um IP dinâmico até que a operadora troque o IP hahaha.
Então tive uma ideia.
Seria possível eu monitorar meu IP, e se caso ele mudar, um script ou algo automaticamente mudar o IP no arquivo node.conf em seguida reiniciar o serviço?
Qualquer ajuda ou dica de ferramenta será bem vinda.

No arquivo node.conf tem uma linha assim:
# declared-address = "1.2.3.4:6863"

Eu paro o serviço assim
systemctl stop node.service

Eu inicio o serviço assim
systemctl start node.service


Boa tarde Okinaua.
Segue script para monitorar o IP Público.
#!/bin/bash

IPPV="0.0.0.0" #Coloque o Ip Publico, Somente na 1ª utilização
SED="/bin/sed"
IPPN=$(/usr/bin/wget -qO- http://ip-api.com/line/?fields=query)

if [[ "${IPPN}" != "${IPPV}" ]];then
${SED} -ri "/^IPPV/s/\".*\"/\"${IPPN}\"/" $0;
printf "\n%(%x%t%t%X)T\nIP Público: ${IPPN}\n" #TESTES
#Coloque aqui os Comandos desejados.
fi


Recomendo colocar o script no "cron".
Se atualmente nada é alterado no arquivo node.conf,
acredito que reiniciar o serviço, é o suficiente.
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

Amigo você poderia me ajudar a terminar o script, sou totalmente leigo, mais vamos lá se entendi bem primeiro eu informo meu IP atual em IPPV= 0.0.0.0 substituindo os zeros pelo IP, em seguida ele busca meu IP na rede e define que IPPN = IP atual
Depois ele compara os dois IPs né isso.
Como eu faço para inserir este IP novo no arquivo que fica em: /usr/share/node/conf/node.conf
Na linha: declared-address = "1.2.3.4:6863"
em seguida reiniciar o serviço apenas se o IP mudar. caso o IP não mude não tenho necessidade de reiniciar o serviço do Node. Fico grato com o que já postou.



4. Re: Ajuda!! Script monitorando IP, editando arquivo de Node e reiniciando serviço.

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/01/2020 - 02:28h

okinaua escreveu:

msoliver escreveu:


okinaua escreveu:

Olá amigos da Comunidade Viva o Linux, bom eu já usei varias dicas aqui e até consegui aprender alguma coisinha de linux, pois bem, agora estou com uma missão que não sei por onde começar e achei muito interessante caso funcione.
Bom eu tenho um Node destes de cripto moedas que para funcionar corretamente em tese precisaria de um IP fixo declarado na rede, acontece que ele funciona muito bem em um IP dinâmico até que a operadora troque o IP hahaha.
Então tive uma ideia.
Seria possível eu monitorar meu IP, e se caso ele mudar, um script ou algo automaticamente mudar o IP no arquivo node.conf em seguida reiniciar o serviço?
Qualquer ajuda ou dica de ferramenta será bem vinda.

No arquivo node.conf tem uma linha assim:
# declared-address = "1.2.3.4:6863"

Eu paro o serviço assim
systemctl stop node.service

Eu inicio o serviço assim
systemctl start node.service


Boa tarde Okinaua.
Segue script para monitorar o IP Público.
#!/bin/bash

IPPV="0.0.0.0" #Coloque o Ip Publico, Somente na 1ª utilização
SED="/bin/sed"
IPPN=$(/usr/bin/wget -qO- http://ip-api.com/line/?fields=query)

if [[ "${IPPN}" != "${IPPV}" ]];then
${SED} -ri "/^IPPV/s/\".*\"/\"${IPPN}\"/" $0;
printf "\n%(%x%t%t%X)T\nIP Público: ${IPPN}\n" #TESTES
#Coloque aqui os Comandos desejados.
fi


Recomendo colocar o script no "cron".
Se atualmente nada é alterado no arquivo node.conf,
acredito que reiniciar o serviço, é o suficiente.
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

Amigo você poderia me ajudar a terminar o script, sou totalmente leigo, mais vamos lá se entendi bem primeiro eu informo meu IP atual em IPPV= 0.0.0.0 substituindo os zeros pelo IP, em seguida ele busca meu IP na rede e define que IPPN = IP atual
Depois ele compara os dois IPs né isso.
Como eu faço para inserir este IP novo no arquivo que fica em: /usr/share/node/conf/node.conf
Na linha: declared-address = "1.2.3.4:6863"
em seguida reiniciar o serviço apenas se o IP mudar.
caso o IP não mude não tenho necessidade de reiniciar o serviço do Node.
Fico grato com o que já postou.

Okinaua, rode o script como ele está (na postagem anterior), para atualizar a var IPPV, note que o IP fica entre " "
IPPV=IP Público Velho
IPPN= IP Público Novo (Atual)
Explicando:
if [[ "${IPPN}" != "${IPPV}" ]];then
Se IPPN é diferente de IPPV,
Atualiza a var IPPV no script: ${SED} -ri "/^IPPV/s/\".*\"/\"${IPPN}\"/" $0;
realiza as ações que você determinar
Atualmente, só mostra na tela a data, hora e o IP Atual.: printf "\n%(%x%t%t%X)T\nIP Público: ${IPPN}\n"
Para alterar use o sed, exemplo:
sed -ri "s/declared-address.*/declared-address=\"${IPPN}\"/" /usr/share/node/conf/node.conf

Completo:
#!/bin/bash

IPPV="0.0.0.0"
SED="/bin/sed"
IPPN=$(/usr/bin/wget -qO- http://ip-api.com/line/?fields=query)

if [[ "${IPPN}" != "${IPPV}" ]];then #Se o ip alterou....
${SED} -ri "/^IPPV/s/\".*\"/\"${IPPN}\"/" $0; #Atualiza o IP no Script
systemctl stop node.service #para o node
sed -ri "s/declared-address.*/declared-address=\"${IPPN}\"/" /usr/share/node/conf/node.conf #altera arquivo
sleep 0.25; #aguarda 0.25s
systemctl start node.service #starta o node
fi

É isso....
Feliz 2020!!!
________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts