У меня есть сервер в моем доме родителей, и в последнее время было много отключений электроэнергии, и когда наш маршрутизатор возвращается в онлайн, он меняет свой публичный / глобальный IP-адрес, что делает меня неспособным подключиться к нему (SSH, FTP, HTTP). ), есть ли какой-нибудь способ, которым я мог бы создать скрипт, который, когда на моем сервере отключается питание и он перезагружается, отправляет мне электронное письмо с моим глобальным / публичным IP-адресом.
используйте мой сценарий.
git clone https://github.com/el-beth/sendExternalIPAddress.git
sendexternalip.bash
файл из каталога sendExternalIPAddress
кому: /usr/lib
- используйте следующую команду, чтобы сделать так. sudo cp sendExternalIPAddress/sendexternalip.bash /usr/lib
sudo chmod +x /usr/lib/sendexternalip.bash
впервые, для установки всех необходимых пакетов и зависимостей: sudo /usr/lib/sendexternalip.bash
теперь для создания сценария выполненным автоматически на запуске выполняет следующую команду:
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-адрес будет отправлен в тот адрес вместо этого.
Вы могли попытаться использовать установку 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-адреса для сервера!