Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Dec 2001 11:57:59 -0500 
From:      "Oliver, Michael W." <oliver.michael@gargantuan.com>
To:        "'jacks@sage-american.com'" <jacks@sage-american.com>
Cc:        "'freebsd-questions@freebsd.org'" <freebsd-questions@freebsd.org>
Subject:   RE: Scripting help
Message-ID:  <1DA741CA6767A144BAA4F10012536C27A923@LKLDDC01.GARGANTUAN.COM>

next in thread | raw e-mail | index | archive | help
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




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