Help. зерколо др.веба.

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
qwl
рядовой
Сообщения: 49
Зарегистрирован: 2008-12-30 14:55:24

Help. зерколо др.веба.

Непрочитанное сообщение qwl » 2009-07-15 7:18:21

Доброго времени суток.

взято все с wiki.drweb.com
если скрипт запускаю в ручную то все хорошо работает. но когда крон запускает этот скрипт, то в последнем действии (там где распоковывает зипы) проходит сбой.
вот что в логе:

Код: Выделить всё

Can't exec "unzip": No such file or directory at /...[путь где лежит скрипт]
вот сам скрипт:

Код: Выделить всё

#!/usr/bin/perl -w
use Digest::MD5;
use LWP::UserAgent;
use Compress::Zlib;
use strict;
my $basedir  = '/tmp/update/500'; # папка, откуда обновляются виндовые агенты
my $drwebkey = '/home/axel/drweb32-betatesting.key'; # путь к ключу drweb
my $tmpdir   = '/tmp'; # директория для временных файлов 
my $url      = 'http://update.drweb.com/500/sspace/windows'; # одна из зон обновления Dr.Web
 

# get MD5 hash of key-file
open(FILE, $drwebkey) or die "Can't open '$drwebkey': $!";
binmode(FILE);
my $md5 =  Digest::MD5->new->addfile(*FILE)->hexdigest;

# download drweb32.lst
download("$url/drweb32.lst",$basedir.'/drweb32.lst'); 

# parse drweb32.lst and download
open LST, '<'."$basedir/drweb32.lst" or die "can't open $basedir/drweb32.lst ($!)\n";
    	 while (<LST>) {
            s/\r?\n$//; # remove \r\n, \n
            /^\[[\w ]+\]$/ and next;
            /^[-]/ and next; #skip delete;
            my ( $filename, undef,$crc) = /^[\+\=\@\!].*?([_a-zA-Z0-9\.\-]+)?[, \s](\|.+)?[, \t]+([a-fA-F\d]+)?[, \t]*(\d+\.\d+)?/o
               or print STDERR "unknown line \"$_\" in lst\n";
            if (checkcrc32("$basedir/$filename",$crc) eq 0){
            print "download $url/$filename, $crc\n"; #what try to download
            my $ret unless download("$url/$filename","$basedir/$filename",$crc);
            }
            else  {
                print "skip $url/$filename, $crc CRC match\n"
            }
          }
close LST;
# solve problem with 403 Access not allowed for *today.vdb
download("http://msk3.drweb.com/pub/drweb/bases/drwtoday.zip",$tmpdir.'/drwtoday.zip');
download("http://msk3.drweb.com/pub/drweb/bases/dwrtoday.zip",$tmpdir.'/dwrtoday.zip');
download("http://msk3.drweb.com/pub/drweb/bases/dwntoday.zip",$tmpdir.'/dwntoday.zip');
opendir (DIR, $tmpdir);
my @files=readdir (DIR);
closedir (DIR);
foreach my $file (@files){
 if ($file =~ /zip/){
   system ('unzip -o '.$tmpdir.'/'.$file.' -d '.$basedir);
 }
}
sub checkcrc32 {
    my ($file,$crc)=@_;
    my $crcf=0;
    open FHC, '<'.$file or return 0;
    $crcf=crc32($_,$crcf) while <FHC>;
    return 0 if hex($crc) != $crcf;
    close FHC;
    return 1;
}
sub download {
    my ($url,$file,$crc)=@_;
    my $ua = LWP::UserAgent->new;
    $ua->agent("DrWebUpdate-5.00.3.03020 (windows: 5.00.2195)");
    $ua->default_header('X-DrWeb-Validate' => $md5);

    my $req = HTTP::Request->new(GET => $url);
    my $res = $ua->request($req);

    if (! $res->is_success) {
        print STDERR $res->status_line, " (file $url)\n";
        return 0;
    }
    if ($crc and hex($crc) != crc32($res->content)) {
        printf STDERR "file $url with frong crc: %X (expects $crc)\n",crc32($res->content);
        return 0;
    }
    if ( ! open FH, '>'.$file) {
        print STDERR "can't open $file ($!)\n";
        return 0;
    }  
    print FH $res->content;
    close FH;
    return 1;
}

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
m0ps
лейтенант
Сообщения: 986
Зарегистрирован: 2008-05-08 20:18:06
Откуда: Chernigov (Ukraine)
Контактная информация:

Re: Help. зерколо др.веба.

Непрочитанное сообщение m0ps » 2009-07-15 14:20:55

в переменную окружения PATH крона добавь путь к бинарнику unzip
к примеру:

Код: Выделить всё

PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/etc:/bin:/sbin

qwl
рядовой
Сообщения: 49
Зарегистрирован: 2008-12-30 14:55:24

Re: Help. зерколо др.веба.

Непрочитанное сообщение qwl » 2009-07-15 14:52:40

Спасибо