Скрипт на bash, проверяющий, не изменился ли IP адрес ppp0 - подключения, и, в случае изменения, высылающий его на email админа.
#!/bin/bash ip=`/sbin/ifconfig ppp0 | egrep -io "inet [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"` ip2=`cat < /home/user/ip.txt` if [ "$ip" != "$ip2" ] then echo "$ip" > /home/user/ip.txt cat /home/user/ip.txt | mutt -x -s "New IP" admin@mail.ru fi exit 0
Вкратце расскажу, как он работает:
Во второй строке мы парсим вывод команды /sbin/ifconfig ppp0, и записываем результат парсинга (ip-адрес) в переменную ip.
В третье строке в переменную ip2 записываем значение из файла /home/user/ip.txt.
В 4-6 строках сравниваем переменные ip и ip2, и если они НЕ равны, записываем переменную ip в файл.
В 7 строке выводим содержимое файла /home/user/ip.txt и отправляем его содержимое на email с помощью консольного почтового клиента Mutt.
Моя статья - Настройка Mutt для отправки почты с использованием внешнего smtp-сервера поможет вам с настройкой.
8-9 строки - завершаем оператор if и выходим.
Затем можно добавить данный скрипт в cron, с периодичность запуска раз в 30 минут (можно чаще, если сессия у вас не стабильна, и ip-адрес меняется часто).
Также может быть полезен Скрипт проверки PPPOE наличия подключения PPPOE, и в случае обрыва, восстанавливающий его.