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
______________________________________________________________________