Сценарий, отправить публичных/Глобальный IP-адрес при перезагрузке

У меня есть сервер в моем родительском доме, и в последнее время было много отключений питания, и когда наш маршрутизатор возвращается в сеть, он меняет свой общедоступный / глобальный IP-адрес, который не позволяет мне подключиться к нему (SSH, FTP, HTTP ), есть ли способ, с помощью которого я мог бы создать скрипт, который, когда питание отключится на моем сервере и перезагрузится, отправит мне по электронной почте мой глобальный / публичный IP адрес.

1
задан 4 July 2017 в 13:27

4 ответа

Вы можете попробовать использовать sendmail. install

sudo apt install -y postfix

выберите internet side и введите имя хоста вашего сервера

. Напишите сценарий, например. в 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,another@mail.address" subject="some subject" from="info@your.server" #-------------------- /usr/sbin/sendmail "$recipients" <<EOF subject:$subject from:$from New IP is $IP EOF exit 0

сделать его исполняемым

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

и вызвать его при каждом перезагрузке

sudo crontab -e

(выберите ваш редактор, например 2 для nano) Добавьте строку

@reboot /usr/local/bin/sendIPmail

Это не требует каких-либо внешних веб-страниц или сложных скриптов / настроек и использует только пакеты из официальных репозиториев Ubuntu. ПРИМЕЧАНИЕ. В качестве альтернативы вам действительно стоит использовать статический IP-адрес для сервера!

1
ответ дан 18 July 2018 в 10:45

используйте мой скрипт.

Клонировать скрипт из моего github repo:

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

Клонировать сценарий из моего github repo:

sudo cp sendExternalIPAddress/sendexternalip.bash /usr/lib

теперь делают исполняемый файл сценария:

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

теперь делают исполняемый файл сценария: теперь, чтобы сценарий запускался автоматически при запуске, выполните следующую команду:

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

Это сделает ваш Linux-адрес электронной почтой текущего внешнего IP-адреса на адрес электронной почты, указанный в скрипт.

NB По умолчанию скрипт отправляет внешний IP-адрес на адрес электронной почты «receiver@grr.la», однако вы можете изменить переменную customReceiverEmail в строке 9 сценария на любой @grr.la адрес, который вы выбрали, и IP-адрес будет отправлен на этот адрес.

1
ответ дан 18 July 2018 в 10:45

Вы можете попробовать использовать sendmail. install

sudo apt install -y postfix

выберите internet side и введите имя хоста вашего сервера

. Напишите сценарий, например. в 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,another@mail.address" subject="some subject" from="info@your.server" #-------------------- /usr/sbin/sendmail "$recipients" <<EOF subject:$subject from:$from New IP is $IP EOF exit 0

сделать его исполняемым

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

и вызвать его при каждом перезагрузке

sudo crontab -e

(выберите ваш редактор, например 2 для nano) Добавьте строку

@reboot /usr/local/bin/sendIPmail

Это не требует каких-либо внешних веб-страниц или сложных скриптов / настроек и использует только пакеты из официальных репозиториев Ubuntu. ПРИМЕЧАНИЕ. В качестве альтернативы вам действительно стоит использовать статический IP-адрес для сервера!

1
ответ дан 24 July 2018 в 19:38

используйте мой скрипт.

Клонировать скрипт из моего github repo:

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

Клонировать сценарий из моего github repo:

sudo cp sendExternalIPAddress/sendexternalip.bash /usr/lib

теперь делают исполняемый файл сценария:

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

теперь делают исполняемый файл сценария: теперь, чтобы сценарий запускался автоматически при запуске, выполните следующую команду:

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

Это сделает ваш Linux-адрес электронной почтой текущего внешнего IP-адреса на адрес электронной почты, указанный в скрипт.

NB По умолчанию скрипт отправляет внешний IP-адрес на адрес электронной почты «receiver@grr.la», однако вы можете изменить переменную customReceiverEmail в строке 9 сценария на любой @grr.la адрес, который вы выбрали, и IP-адрес будет отправлен на этот адрес.

1
ответ дан 24 July 2018 в 19:38
  • 1
    Я думаю, что одна из проблем здесь заключается в том, что у них нет GoeillaMail - все, кажется, полагается на это, основываясь на вашем ответе. – Thomas Ward♦ 4 July 2017 в 18:37
  • 2
    Я отредактировал ответ и немного исправил. вы бы так любезны, чтобы пройти через ответ - сверху - еще раз и повторите голосование, когда он сработает. lol .. Кстати, очень жаль, что хлопот - но улучшенный ответ будет работать. Также почта gorilla - бесплатная и анонимная служба обмена сообщениями. погугли это. не требуется подписка или подписка. в вашем случае вы просто вставляете адрес электронной почты & quot; receiver@grr.la" в поле на главной странице и в voila вы можете увидеть все электронные письма, отправленные на эту учетную запись. это одноразовые адреса электронной почты. – endrias 4 July 2017 в 18:43

Другие вопросы по тегам:

Похожие вопросы: