Script que envia IP Público / Global na reinicialização

1

Eu possuo um servidor na minha casa dos Pais e recentemente tem havido muitos cortes de energia e quando nosso roteador volta a ficar online ele muda seu endereço IP Público / Global que me impede de conectar a ele (SSH, FTP, HTTP ), existe alguma maneira que eu poderia fazer um script que quando o poder sai no meu servidor e ele reinicia, envie um email com o meu IP Global / Público para mim.

    
por Joiie 04.07.2017 / 11:56

2 respostas

1

use meu script.

  1. Clone o script do meu repositório do github:

git clone https://github.com/el-beth/sendExternalIPAddress.git

  1. mova o arquivo sendexternalip.bash do diretório sendExternalIPAddress para /usr/lib - use o seguinte comando para fazer isso.

sudo cp sendExternalIPAddress/sendexternalip.bash /usr/lib

  1. agora torne o script executável:

sudo chmod +x /usr/lib/sendexternalip.bash

  1. pela primeira vez, para instalar todos os pacotes e dependências necessários: sudo /usr/lib/sendexternalip.bash

  2. agora para que o script seja executado automaticamente na inicialização, execute o seguinte comando:

sudo printf "start on startup\ntask\nexec /us/lib/sendexternalip.bash\n" > ~/.config/upstart/sendexternalip.conf

Isso fará com que sua caixa do Linux envie por e-mail seu endereço IP externo atual para o endereço de e-mail especificado no script.

N.B. O script - por padrão - envia o endereço IP externo para o endereço de e-mail "[email protected]", no entanto, você pode alterar a variável customReceiverEmail na linha 9 do script para qualquer endereço @grr.la de sua escolha e o O endereço IP será enviado para esse endereço.

    
por endrias 04.07.2017 / 15:38
1

Você pode tentar usar o sendmail. instalar

sudo apt install -y postfix

escolha internet side e digite o nome do host do seu servidor

Escreva um script, por exemplo em sudo nano /usr/local/bin/sendIPmail :

#!/bin/bash

# 1. gets the primary IP
#from https://stackoverflow.com/a/25851186/7111561
IP=$( ip route get 1 | awk '{print $NF;exit}' )


# 2. send it using sendmail
#from https://stackoverflow.com/a/13390926/7111561

#--- adjust those ---
recipients="your.mail@address,[email protected]"
subject="some subject"
from="[email protected]"
#--------------------

/usr/sbin/sendmail "$recipients" <<EOF
subject:$subject
from:$from

New IP is $IP
EOF

exit 0

torne-o executável

sudo chmod +x /usr/local/bin/sendIPmail

e ligue para todos os reinícios correr

sudo crontab -e

(selecione seu editor, por exemplo, 2 para nano) Adicione a linha

@reboot /usr/local/bin/sendIPmail

Isso não requer nenhuma página da Web externa ou scripts / configurações complexos e usa apenas pacotes dos repositórios oficiais do Ubuntu.

NOTA: Como alternativa, você realmente deve considerar o uso de um endereço IP estático para um servidor!

    
por derHugo 04.07.2017 / 19:09