środa, 1 kwietnia 2009

nowy adres IP + email + linux

Kolega potrzebował wiedzieć jaki ip ma w domu na laptopie (Ubuntu).
Oczywiscie ma zmienne ip.

Ten prosty skrypt może pomoc.

  
#!/bin/bash
#set -x

IFACE=interface
EMAIL=email@email.com
LOGIN=login
HASLO=haslo
POP=smtp.serwerpocztowy.pl
LOG=/var/log/ip
OLD_IP=`cat $LOG`
x=`/sbin/ifconfig $IFACE`
y=${x#*inet addr:}
y=${y%% *}
echo $y > $LOG
if [[ -z "$OLD_IP" ]] && [[ "$y" ]]; then
# report new ip
echo 'New IP address for' `hostname` 'is:' $y 'on ' `date` | sendEmail -f $EMAIL -t $EMAIL -u "Nowy Ip $y" -m "$EMAIL $y" -s "$POP" -o tls=yes -xu "$LOGIN" -xp "$HASLO"
# if ip changed since last chec
elif [[ "$OLD_IP" ]] && [[ "$y" ]]; then
if [ "$y" != "$OLD_IP" ]; then
echo 'New IP address for' `hostname` 'is:' $y 'on ' `date` | sendEmail -f $EMAIL -t $EMAIL -u "Nowy IP $y" -m "$EMAIL $y" -s "$POP" -o tls=yes -xu "$LOGIN" -xp "$HASLO"
fi
fi
exit 0

Następnie
- Trzeba całe źródło zapisac do pliku np emailip w folderze /etc/network/if-up.d
- Utworzyć plik
/var/log/ip
- ustawic prawa
chmod +x emailip
- Pozostaje jeszcze pozmieniać dane.
- zainstalowac SendEmail
Skrypt sproboje wyslac emaila zawsze jak interefejs się włączy.
Szukałem jakiegoś sposobu aby nie trzeba było instalować żadnego MTA, program SendEmail w ubuntu, świetnie się sprawdza można zainstalować przez Synaptic Menadżer Pakietów.

Brak komentarzy: