| version 1.6, 2005/11/17 00:40:06 |
version 1.8, 2005/11/17 20:20:59 |
|
|
| #!/usr/bin/perl
|
#!/usr/bin/perl
|
| # $RedRiver: update_trango.pl,v 1.5 2005/11/16 21:39:51 andrew Exp $
|
# $RedRiver: update_trango.pl,v 1.7 2005/11/17 20:09:45 andrew Exp $
|
| ########################################################################
|
########################################################################
|
| # update_trango.pl *** Updates trango foxes with a new firmware
|
# update_trango.pl *** Updates trango foxes with a new firmware
|
| #
|
#
|
|
|
| use Net::TFTP;
|
use Net::TFTP;
|
| use Fcntl ':flock'; # import LOCK_* constants
|
use Fcntl ':flock'; # import LOCK_* constants
|
| #use YAML;
|
#use YAML;
|
| |
use constant LOG_SAVE => 1;
|
|
|
|
|
|
|
| my $config_file = shift || 'update_trango.conf';
|
my $config_file = shift || 'update_trango.conf';
|
| my $conf = read_conf($config_file);
|
|
|
|
|
| my $max_tries = 1;
|
my $max_tries = 1;
|
|
|
|
| my $log_file = GetLogName('UT');
|
|
| use constant LOG_SAVE => 1;
|
|
|
|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
my $log_file = GetLogName('UT');
|
| my $MYLOG; # file handle for logging so we don't have to close and open it all the time
|
my $MYLOG; # file handle for logging so we don't have to close and open it all the time
|
| END {
|
END {
|
| if ($MYLOG) {
|
if ($MYLOG) {
|
|
|
| }
|
}
|
|
|
|
|
|
|
| |
mylog("Reading config file '$config_file'", LOG_SAVE);
|
| |
my $conf = read_conf($config_file);
|
|
|
|
| |
mylog(" Hardware Type: $conf->{'type'}", LOG_SAVE);
|
| |
mylog(" File Name: $conf->{'file_name'}", LOG_SAVE);
|
| |
mylog(" File Size: $conf->{'file_size'}", LOG_SAVE);
|
| |
mylog(" File Checksum: $conf->{'file_cksum'}", LOG_SAVE);
|
| |
mylog(" FW Version: $conf->{'ver'}", LOG_SAVE);
|
| |
mylog(" FW Checksum: $conf->{'cksum'}", LOG_SAVE);
|
| |
mylog("", LOG_SAVE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| foreach my $fox (@{ $conf->{'ips'} }) {
|
foreach my $fox (@{ $conf->{'ips'} }) {
|
| mylog("Updating: $fox", LOG_SAVE);
|
mylog("Updating: $fox", LOG_SAVE);
|
|
|
|
|
|
| next if /^#/;
|
next if /^#/;
|
| next if /^$/;
|
next if /^$/;
|
| if ($in_ip_list) {
|
if ($in_ip_list) {
|
| push @{ $conf{'ips'} }, $_;
|
if (/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)(\d{1,3})-(\d{1,3})/) {
|
| |
push @{ $conf{'ips'} }, $1 . $_ for ($2..$3);
|
| |
} else {
|
| |
push @{ $conf{'ips'} }, $_;
|
| |
}
|
| } else {
|
} else {
|
| my ($key, $val) = split /\s+/, $_, 2;
|
my ($key, $val) = split /\s+/, $_, 2;
|
|
|
|
|
|
| if (not exists $conf{$_});
|
if (not exists $conf{$_});
|
| }
|
}
|
|
|
|
| |
#print Dump \%conf;
|
| |
#exit;
|
| return \%conf;
|
return \%conf;
|
| }
|
}
|
|
|
|