Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Dec 2001 11:14:34 -0600
From:      jacks@sage-american.com
To:        "Oliver, Michael W." <oliver.michael@gargantuan.com>
Cc:        "'freebsd-questions@freebsd.org'" <freebsd-questions@FreeBSD.ORG>
Subject:   RE: Scripting help
Message-ID:  <3.0.5.32.20011209111434.0101cb38@mail.sage-american.com>
In-Reply-To: <1DA741CA6767A144BAA4F10012536C27A923@LKLDDC01.GARGANTUAN.C OM>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for more testing.... getting closer now!

At 11:57 AM 12.9.2001 -0500, Oliver, Michael W. wrote:
>Jack,
>
>I just tried this on my server, and had to make a couple of tweaks.... This
>might be better....
>
>
>
>#!/bin/sh
>
>while [ 1 ]
>do
>    
>    LAST_KNOWN_IP=`cat last_known_ip_file`;
>    CURRENT_IP=`ifconfig sis0 | grep inet | grep -v inet6 | awk ' { print
>$2; } '`;
>
>    if [ -z "$LAST_KNOWN_IP" ]
>        then
>            # run your dns ping program here using $CURRENT_IP
>            echo $CURRENT_IP >last_known_ip_file;
>            continue
>    fi
>
>    if [ "$LAST_KNOWN_IP" = "$CURRENT_IP" ]
>        then
>            sleep 30;
>            continue
>        else
>            # run your dns ping program here using $CURRENT_IP
>            echo $CURRENT_IP >last_known_ip_file;
>    fi
>
>done
>
>EOF
>
>
>
>
>
>Of course, you would have to change the 'sis0' interface name to the one you
>are looking to monitor.  HTH....
>
>===========
>Michael Oliver 
>
>> -----Original Message-----
>> From: jacks@sage-american.com [mailto:jacks@sage-american.com] 
>> Sent: Sunday, December 09, 2001 11:51 AM
>> To: Oliver, Michael W.; freebsd-questions@freebsd.org
>> Cc: Oliver, Michael W.
>> Subject: RE: Scripting help
>> 
>> 
>> Thanks Michael, will work on it....
>> 
>> At 11:32 AM 12.9.2001 -0500, Oliver, Michael W. wrote:
>> >Jack,
>> >
>> >Well, this will be my first script written from scratch, so 
>> please be kind
>> >if I dork it up!  Try this:
>> >
>> >
>> >
>> >
>> >
>> >
>> >#!/bin/sh
>> >
>> >while [ 1 ]
>> >do
>> >    
>> >    LAST_KNOWN_IP=`cat last_known_ip_file`
>> >    CURRENT_IP=`ifconfig tun0 | grep inet | awk ' { print $2; } '`
>> >
>> >    if [ -z "$LAST_KNOWN_IP"]
>> >        then
>> >            # run your dns ping program here using $CURRENT_IP
>> >            echo $CURRENT_IP >last_known_ip_file
>> >            continue
>> >    fi
>> >
>> >    if [ "$LAST_KNOWN_IP" = "$CURRENT_IP" ]
>> >        then
>> >            sleep 30
>> >            continue
>> >        else
>> >            # run your dns ping program here using $CURRENT_IP
>> >            echo $CURRENT_IP >last_known_ip_file
>> >    fi
>> >
>> >done
>> >
>> >EOF
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >Please let me know how it turns out ;-)
>> >
>> >===========
>> >Michael Oliver
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > 
>> >
>> >> -----Original Message-----
>> >> From: jacks@sage-american.com [mailto:jacks@sage-american.com] 
>> >> Sent: Sunday, December 09, 2001 11:02 AM
>> >> To: freebsd-questions@freebsd.org
>> >> Subject: Scripting help
>> >> 
>> >> 
>> >> I have just set up an experimental FBSD 4.4-STABLE server 
>> >> using DSL with
>> >> dynamic ip. Using ZoneEdit DNS services, the DNS can be 
>> >> updated with a cron
>> >> script to still point to the proper name. I'm doing that now 
>> >> using cron to
>> >> run the update script every 8 hours (the connection usually 
>> >> runs for weeks
>> >> at a time without disconnect).
>> >> 
>> >> However, I had rather have a script that runs every so often 
>> >> (xminutes) and
>> >> doesn't bother the DNS server unless and ONLY if a changed in 
>> >> the dynamic
>> >> IP has occured as a result of disconnect/reconnect. Here are 
>> >> the functions
>> >> I see needed, but scripting language is not yet a decent 
>> >> skill of mine. I
>> >> suspect others using dynamic IPs have this same need: Any guidence
>> >> appreciated once again. (I've looked at the ipcheck that uses 
>> >> Python, but
>> >> rather not go that route if possible to do the simple 
>> >> approach below). 
>> >> 
>> >> BEGIN (my crude) SCRIPT:
>> >> #!/bin/sh
>> >> PATH=/usr/local/bin:/usr/bin:/bin
>> >> ## This script would be run by cron every x_minutes
>> >> ## (files needed: "last_known_ip" and "my_current_ip")
>> >> ## Contents of last_known_ip (placed there manually at for 
>> >> first output
>> >> ## by running ifconfig tun0 > last_known_ip
>> >> 
>> >> tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
>> >>         inet 64.xxx.xx.20 --> 64.xxx.xx.254 netmask 0xffffffff 
>> >>         Opened by PID 149
>> >> 
>> >> ## Run update to my_current_ip file
>> >> # function: ifconfig tun0 > my_current_ip
>> >> 
>> >> ##.... so the "my_current_ip" file would contain output of:
>> >> tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
>> >>         inet 64.xxx.xx.20 --> 64.xxx.xx.254 netmask 0xffffffff 
>> >>         Opened by PID 149
>> >> 
>> >> ## Now make comparison to see if dynamic ip has changed and 
>> >> update DNS if
>> >> changed. 
>> >> # function: look in my_current_ip and find the current ip 
>> >> (64.xxx.xx.20)
>> >> # function: look in last_known_ip file and find ip (64.xxx.xx.66)
>> >> # function: if not same, then run DNS_ping_program to update 
>> >> (ping command
>> >> here)
>> >> ## If change detected, update comparison file
>> >> # function: ifconfig tun0 > last_known_ip
>> >> # function: if same ip, then do nothing
>> >> END OF SCRIPT
>> >> 
>> >> The above may be a crude approach, but best way I can define 
>> >> the job for
>> >> now....
>> >> 
>> >> Best regards,
>> >> Jack L. Stone,
>> >> Server Admin
>> >> 
>> >> Sage-American
>> >> http://www.sage-american.com
>> >> jacks@sage-american.com
>> >> 
>> >> To Unsubscribe: send mail to majordomo@FreeBSD.org
>> >> with "unsubscribe freebsd-questions" in the body of the message
>> >> 
>> >
>> >
>> 
>> Best regards,
>> Jack L. Stone,
>> Server Admin
>> 
>> Sage-American
>> http://www.sage-american.com
>> jacks@sage-american.com
>> 
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-questions" in the body of the message
>
>

Best regards,
Jack L. Stone,
Server Admin

Sage-American
http://www.sage-american.com
jacks@sage-american.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.5.32.20011209111434.0101cb38>