#!/bin/bash
############################################################### # # testIP.sh # version 1.0 # Greg Brown # # watches the external interface on my cable modem attached # box (eth0) and compaires the IP address to what is stored # in the flat file /home/ghome/scripts/currentIP. If a change # has been detected it sends an e-mail to me at work and # at home so I can change my dynamic hostname resolution. # # June 12, 2003 # # version 1.1 # # Added a test to make sure that the results caputred in # $IPADDRESS actually contained something. If the results # in $IPADDRESS are null we now exit the script without # processesing further. # # June 13, 2003 # ###############################################################
# get the current ip address on the system
IPADDRESS=`/sbin/ifconfig eth0 | grep inet | tr ':' ' ' | awk '{ print $3 }'`
# test line # echo "current ip $IPADDRESS"
# now use test to see if $IPADDRESS has a value stored in it /usr/bin/test $IPADDRESS
# now check the results of $? which is were the results of the above # test are stored. If the result is 1 then it is null, if the result # is 0 then it is NOT null if /usr/bin/test $? = 1 then
# debug line
# echo "we don't have a IP address stored in $IPADDRESS" # we don't have an ip address so exit the script
# we can assume the interface is down and since there is no
# point in sending an e-mail - we can't without the inteface
# being up - well, just exit.
exitfi
# debug line # echo "we made it past the first test"
# now get the last known IP address LASTIP=`/bin/cat /home/ghome/scripts/currentIP`
# echo "lastip $LASTIP"
# now test to see if the IP addresses match if /usr/bin/test "$IPADDRESS" = "$LASTIP" then
# echo "we have the same ip address"
# echo "last: $LASTIP current: $IPADDRESS"
# do nothing, we have matching IP addresses
# just exit
exit else
# echo "we do not have matching IPs"
# echo "last: $LASTIP current: $IPADDRESS"
# we do NOT have matching IP addresses so
# we have to overwrite the currentIP file
echo $IPADDRESS >/home/ghome/scripts/currentIP # get the hostname for the e-mail
HOSTN=`/bin/hostname` # and get the time as well
DANDT=`/bin/date` # and we have to notify Greg what has happened
# create a file with the info we need to send
# the email
echo "$DANDT" >/tmp/$$
echo "$HOSTN has changed IP addresses" >>/tmp/$$
echo "IP was $LASTIP" >>/tmp/$$
echo "IP is now $IPADDRESS" >>/tmp/$$# now mail the file
/bin/mail -s "$HOSTN has changed IP Addresses" [EMAIL PROTECTED] </tmp/$$
# now remove /tmp/$$
/bin/rm /tmp/$$ # and we're done
exitfi
_______________________________________________ TriLUG mailing list http://www.trilug.org/mailman/listinfo/trilug TriLUG Organizational FAQ: http://www.trilug.org/faq/TriLUG-faq.html
