Вы здесь

Скрипт отправки ip на email

Скрипт на bash, проверяющий, не изменился ли IP адрес ppp0 - подключения, и, в случае изменения, высылающий его на email админа.

  1. #!/bin/bash
  2. ip=`/sbin/ifconfig ppp0 | egrep -io "inet [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"`
  3. ip2=`cat < /home/user/ip.txt`
  4. if [ "$ip" != "$ip2" ]
  5. then
  6. echo "$ip" > /home/user/ip.txt
  7. cat /home/user/ip.txt | mutt -x -s "New IP" admin@mail.ru
  8. fi
  9. 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, и в случае обрыва, восстанавливающий его.