Скрипт, который отправляет Public / Global IP On при перезапуске

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

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

2 ответа

используйте мой сценарий.

  1. Клонируйте сценарий от моего GitHub repo:

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

  1. затем переместитесь sendexternalip.bash файл из каталога sendExternalIPAddress кому: /usr/lib - используйте следующую команду, чтобы сделать так.

sudo cp sendExternalIPAddress/sendexternalip.bash /usr/lib

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

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

  1. впервые, для установки всех необходимых пакетов и зависимостей: sudo /usr/lib/sendexternalip.bash

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

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

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

N.B. Сценарий - по умолчанию - отправляет Внешний IP-адрес в адрес электронной почты "receiver@grr.la", однако, можно измениться customReceiverEmail переменная на строке 9 из сценария любому @grr.la адрес Вас выбор и IP-адрес будет отправлен в тот адрес вместо этого.

1
ответ дан 7 December 2019 в 13:32

Вы могли попытаться использовать установку sendmail.

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 для нано), Добавьте строку

@reboot /usr/local/bin/sendIPmail

Это не требует никаких внешних веб-страниц или сложных сценариев/установок и использует только пакеты из официальной Ubuntu repos.

Примечание: Кроме того, действительно необходимо рассмотреть использование статического IP-адреса для сервера!

1
ответ дан 7 December 2019 в 13:32

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

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