TNR нашел.
файл upd.pl:
#$URL_UPD_ESET=$URL_UPD."nod32/v3/";
#$URL_UPD_NOD=$URL_UPD."nod32/v2/";
#$login="";
#$pass="";
$login="********"; - это понятно
$pass="********"; - это понятно
$URL_UPD="http://89.202.157.227/";
#$URL_UPD="http://www.*******/"; сервер нода
$URL_UPD_ESET=$URL_UPD."eset_upd/";
$URL_UPD_NOD=$URL_UPD."nod_upd/";
файл nod_upd.pl:
#!/usr/bin/perl
use LWP;
require '/mnt/hdd80/upd.pl';
$URL_UPD=$URL_UPD_NOD;
# path to store updates
$PATH="/mnt/hdd80/nod_upd";
# username/password for updates registered users
# URL for updates
#$URL_UPD="http://update.eset.com/nod_upd/";
#$URL_UPD="http://um10.eset.com/nod_upd/";
$DATE=`date "+%Y %m %d %H %M"`;
`echo "\n""\n""$DATE">> /mnt/hdd80/log/nod_upd.log `;
$URL_UPD =~ s/\/$//;
$URL_UPD =~ m/(.*:\/\/)(.*?)(\/.*)/;
$site = "$1$2";
if ($site =~ m//)
{
print "Enter correct URL\n";
return;
}
unlink("$PATH/update.ver","$PATH/update.tmp");
download($PATH, "$URL_UPD/update.ver", $login, $pass);
`/usr/local/bin/unrar e -y $PATH/update.ver $PATH 2> /dev/null`;
rename("$PATH/update.ver","$PATH/update.tmp");
$ver = "$PATH/update.tmp";
$vers = "$PATH/update.ver";
open(VER, "< $ver") or die "Couldn't open $ver for reading: $!\n";
open(VERS, "> $vers") or die "Couldn't open $vers for writing: $!\n";
%files = ();
%urls = ();
while (defined($line = <VER>) )
{
chomp $line;
$line =~ s/^\s+//;
$line =~ s/\s+$//;
($par,$val)=split /=/, $line;
if ($par =~ /file/ )
{
$name = $val;
$name =~ s/\/.*\///;
if ($name=~m/$val/) {$furl="$URL_UPD/$val";}
else {$furl="$site$val";}
$line="file=$name";
}
if ($par =~ /size/ )
{
$size = $val;
$files{$name} = $size;
$urls{$name} = "$furl";
}
print VERS "$line\r\n";
}
print "\n";
close(VER);
close(VERS);
foreach $f (keys %files)
{
if ( (-s ("$PATH/$f")) != $files{$f})
{
download($PATH,$urls{$f},$login,$pass);
}
}
sub download()
{
my ($path, $url, $login, $pass) = @_;
$url =~ m/(.*:\/\/)(.*)\/(.*)/;
my $filename = $3;
my $ua=LWP::UserAgent->new();
$ua->agent("PerlUA/0.1");
my $req = HTTP::Request->new(HEAD => "$url");
$req->authorization_basic($login, $pass);
my $document=$ua->request($req);
if($document->is_success)
{
if (!($document->content_length== -s("$path/$filename")))
{
my $req = HTTP::Request->new(GET => "$url");
$req->authorization_basic($login, $pass);
my $document=$ua->request($req);
if($document->is_success)
{
open(OUT, "> $path/$filename");
print OUT $document->content;
close(OUT);
print "Downloading $url ";
print "- ok\n";
`echo "$url" "- ok">> /mnt/hdd80/log/nod_upd.log `;
}
else
{
print "$url ",$document->status_line,"\n";
}
}
else
{ #
print "$filename - exist\n";
`echo "$filename" "- exist">> /mnt/hdd80/log/nod_upd.log `;
}
}
else
{
print "$url ",$document->status_line,"\n";
}
}
`chmod 0666 $PATH/*`;
Добавлено: TNR работало в течении года...для разной версии только пара парметров правишь и все...он качает разные версии.... не использую так как нет нужны
везде лицензии стоят
Добавлено: да чуть не забыл
вот это *** надо поставить что бы скрипт завелся...
pkg_add -r bzip2
pkg_add -r unrar
pkg_add -r lwp
pkg_add -r wget
pkg_add -r p5-libwww
pkg_add -r p5-MD5
pkg_add -r p5-LockFile-Simple
pkg_add -r p5-Digest-SHA1
pkg_add -r gnupg
заточен под фри....но думаю если руки приложишь то заработает и под линуксом