Вот поправил перловый скрипт, теперь работает.... вот как бы еще паролики автоматом скачивать?
да. первый раз тянет ~200 метров, потом только то, что обновлялось...
Код: Выделить всё
#!/usr/bin/perl
use LWP;
# path to store updates
$PATH="/home/www/mail.kk.com/nod";
$WGET="/usr/local/bin/wget"; # Путь к программе wget
# username/password for updates registered users
$LOGIN='AV-6327330';
$PASS='yt8jc2gyb9';
# URL for updates
$URL_UPD="http://u21.eset.com/";
$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/nod_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;
($par,$val)=split /=/, $line;
$val = substr($val, 0, -1);
if ($par =~ /file/ )
{
$name = '/'.$val;
$name =~s/\/.*\///;
$furl="$URL_UPD/$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}){
# $size = (-s "$PATH/$f");
# print "Not present --> $PATH/$f\t$f\t$files{$f} ---> $size\n";
unlink("$PATH/$f");
download($PATH,$urls{$f},$LOGIN,$PASS);
} else { #print " Present --> $PATH/$f\t$f\t$files{$f}\n";
}
}
chmod(0644,"$PATH/*");
sub download()
{
my ($path, $url, $login, $pass) = @_;
system("$WGET -P $path --http-user=$login --http-password=$pass $url");
}
Власть в руках у чужаков, и ты им платишь дань...