Date: Sun, 9 Dec 2001 11:32:53 -0500 From: "Oliver, Michael W." <oliver.michael@gargantuan.com> To: "'jacks@sage-american.com'" <jacks@sage-american.com>, freebsd-questions@freebsd.org Cc: "Oliver, Michael W." <oliver.michael@gargantuan.com> Subject: RE: Scripting help Message-ID: <1DA741CA6767A144BAA4F10012536C27A922@LKLDDC01.GARGANTUAN.COM>
next in thread | raw e-mail | index | archive | help
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
>
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?1DA741CA6767A144BAA4F10012536C27A922>
