У меня есть сервер в моем родительском доме, и в последнее время было много отключений питания, и когда наш маршрутизатор возвращается в сеть, он меняет свой общедоступный / глобальный IP-адрес, который не позволяет мне подключиться к нему (SSH, FTP, HTTP ), есть ли способ, с помощью которого я мог бы создать скрипт, который, когда питание отключится на моем сервере и перезагрузится, отправит мне по электронной почте мой глобальный / публичный IP адрес.
Вы можете попробовать использовать 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-адрес для сервера!
используйте мой скрипт.
Клонировать скрипт из моего 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-адрес будет отправлен на этот адрес.
Вы можете попробовать использовать 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-адрес для сервера!
используйте мой скрипт.
Клонировать скрипт из моего 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-адрес будет отправлен на этот адрес.