Date: Tue, 6 Jul 1999 09:47:38 +1200 From: "Dan Langille" <dan.langille@dvl-software.com> To: Anton Berezin <tobez@plab.ku.dk> Cc: Burke Gallagher <burke@mcs.net>, freebsd-questions@FreeBSD.ORG Subject: Re: running frequent cron perl scripts Message-ID: <199907052147.QAA01586@metis.host4u.net> In-Reply-To: <19990705232139.D8704@lion.plab.ku.dk> References: <19990705203750.BEYX282564.mta1-rme@wocker>; from Dan Langille on Tue, Jul 06, 1999 at 08:34:27AM %2B1200
next in thread | previous in thread | raw e-mail | index | archive | help
Anton,
I've done some of the changes you suggested. I don't have time to do
them all right now. I've also done some logging to demonstrate where
the time is being taken:
Jul 6 09:42:44 ns DYNDNS[56310]: script stop
Jul 6 09:42:56 ns DYNDNS[56311]: script LWP
Jul 6 09:42:57 ns DYNDNS[56312]: script URL stuff
Jul 6 09:43:14 ns DYNDNS[56313]: script URL finish
Jul 6 09:43:14 ns DYNDNS[56314]: script stop
If the socket stuff is faster, I might try that.
The script now looks like this:
#!/usr/bin/perl
## Program Name: fetch2.cgi
##
## Nokia M10 address fetcher
##
##I hope that this program is useful to you. I make no claim as to this
##software's stability or value. It is offered as is. Use at your own risk.
system("logger -i -t DYNDNS script start");
$| = 1;
require LWP;
system("logger -i -t DYNDNS script LWP");
## Set the username and password for the M10
$user = "MadeHardBy";
$pass = "Telecom";
## Set the URL of the page containing the current IP for the M10
$URL = "http://192.168.1.254/shell/show+ip+interfaces";
## Set the left and right hand side of the Regular Expression that will find
## the IP within the page
$lhs = "inet ";
$rhs = " netmask 0 peer";
## set the following to the name of a program you want run if its a new
IP
$RunIfNew = "/home/dan/dns_update.sh";
$IPFilename = "myip.txt";
system("logger -i -t DYNDNS script URL stuff");
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET,$URL,$h);
$req->authorization_basic($user,$pass);
$page = $ua->request($req);
$page->content() =~ /$lhs(\d*?\.\d*?\.\d*?\.\d*?)$rhs/;
system("logger -i -t DYNDNS script URL finish");
$ip=$1;
&get_OldIP;
if ($ip ne $OldIP) {
&write_OldIP;
system( $RunIfNew);
system("logger -i -t DYNDNS The IP Address has changed to $ip");
}
system("logger -i -t DYNDNS script stop");
## End of program.
sub get_OldIP{
if (open(FILE,"<$IPFilename")) {
$OldIP = <FILE>;
close FILE;
} else {
&write_OldIP;
}
}
sub write_OldIP{
if (open(FILE,">$IPFilename")) {
print FILE $ip;
close FILE;
} else {
print "<STRONG>Error:</STRONG> couldn't write to file
$IPFilename: $!\n";
}
}
--
Dan Langille - DVL Software Limited
The FreeBSD Diary - http://www.FreeBSDDiary.org/freebsd/
NZ FreeBSD User Group - http://www.nzfug.nz.freebsd.org/
The Racing System - http://www.racingsystem.com/racingsystem.htm
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?199907052147.QAA01586>
