Немного усовершенствовал свой скрипт отправки IP на email. Если у вас на сервере поднят OpenVPN, то в случае изменения внешнего IP, новый адрес будет отправлен вам на e-mail, и в конфиге /etc/openvpn/server.conf в первой строке будет указан также новый IP - адрес.
#!/bin/bash # парсим текущий IP ip=`/sbin/ifconfig ppp0 | egrep -io "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | head -1` ip2=`cat < /home/user/ip.txt` if [ "$ip" != "$ip2" ] # сравниваем 2 IP, и если они не равны then echo "$ip" > /home/fess/ip.txt # записываем IP в файл # удаляем первую строку в /etc/openvpn/server.conf (в ней содержится IP) sed -i '1d' /etc/openvpn/server.conf sed -i "1i local ${ip}" /etc/openvpn/server.conf # добавляем в первую строчку текущий ip cat /home/fess/ip.txt | mutt -x -s "New IP" admin@mail.ru # высылаем IP на email sleep 3 # ждем 3 секунды /etc/init.d/openvpn reload # говорим OpenVPN-серверу перечитать конфиг else # если IP не изменился, то завершаем сценарий exit 0 fi
Отправка письма с IP-адресом осуществляется через консольный почтовый клиент Mutt. О его настройке читайте в моей статье - Настройка Mutt для отправки почты с использованием внешнего smtp-сервера.
После ставим данный скрипт на выполнение в Cron, к примеру, раз в 30 минут, и все.
P.S. Если скрипт как-то можно оптимизировать/упростить, прошу писать в комментарии, буду рад любым советам.