wat_che 08.12.2010 22:15
Есть вопрос! — [РЕШЕНО] Скрипт отправки письма при смене ip.
Такой вопрос. Есть ли у кого готовое решение скрипта проверяющего внешний ip и при его смене отправляющего письмо на мыло? dyndns и no-ip не предлагать.Решено. За решение благодарность albibek
Скрипт проверяет внешний ip и если он изменился шлёт письмо на мыло. Я поставил себе в получасовые задания крон.
1 |
#!/bin/sh
|

+ 2 -
wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Тогда уж так:
wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//' | mail -s 'New IP' [email protected]
Тогда уж так (чтобы отправлять при смене, а не при каждой проверке):
IP_FILE="/tmp/ip_addr"
OLD_IP=$(cat $IP_FILE)
CURR_IP=$(wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')
< "$OLD_IP" = "$CURR_IP"> && mail -s "IP change $OLD_IP -> $CURR_IP" [email protected]
echo $CURR_IP > $IP_FILE
#!/bin/bash
IP_FILE="/tmp/ip_addr"
OLD_IP=""
< -f "$IP_FILE" > && OLD_IP=$(cat $IP_FILE)
CURR_IP=$(wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//')
< "$OLD_IP" = "$CURR_IP" > && mail -s "IP change $OLD_IP -> $CURR_IP" [email protected]
echo $CURR_IP > $IP_FILE
Пардон. Писал, не тестируя. Ошибки:
1. /tmp/ip_addr по-умолчанию не существует, добавил проверку.
2. Квадратные скобки всегда отделены пробелами от того, что внутри, ибо
man test
а сам этот внешний ip адрес на вашем компьютере поднимается? если да, то можно поместить команду отправки письма в ip-up скрпит. и будет при поднятии wan интерфейса вам сразу отправляться письмо с новым ip. так как в ip-up скрипт он передаётся через параметр. в убунте это скриптик /etc/ppp/ip-up
что-то типа. Cisco поднимает сессию, натит, после неё (cisco) стоит ещё один промежуточный шлюз с двумя сетевыми картами одна смотрит на ciscy и в одну локалку другая в другую локалку. Почему так не спрашивайте, не моя парафия.
что-то типа. Cisco поднимает сессию, натит, после неё (cisco) стоит ещё один промежуточный шлюз с двумя сетевыми картами одна смотрит на ciscy и в одну локалку другая в другую локалку. Почему так не спрашивайте, не моя парафия.
Я так понимаю, ip меняется по dhcp. Если так, открываете man dhclient-script для вашего дистрибутива и ищете, куда записываются dhclient-exit-hooks(В Debian - это директория /etc/dhcp3/dhclient-exit-hooks.d/ - любой файл из неё выполнится после поднятия получения адреса; в Gentoo - это просто файл /etc/dhcp3/dhclient-exit-hooks; в принципе, гентушный подход должен сработать в любом дистре, но там все скрипты будут в куче, мне по душе больше debian'овский). Туда записываете что-то типа
Ну или как-нибудь ещё проверяете свой ip, эту строчку я только что с головы выдумал.
echo $(ip -f inet addr list | grep -A 1 eth0 | grep inet | awk '{print $2}') | mail [email protected]
Ну или как-нибудь ещё проверяете свой ip, эту строчку я только что с головы выдумал.
всем спасибо дальше буду разбираться пока настроил только связку msmtp+nail впринципе всё работает осталось только намутить с crond Если интересен результат решения,отпишитесь. Закончу разбор полётов отпишусь.