The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
DrWeb update, !*! Dumid, 13-Май-04, 18:08  [смотреть все]
Приветствую ALL!!!
Маленькая трабла, FreeBSD 5.2+DrWeb 4.31.3 не обновляется, ни руками, ни как иначе, пишет Permission deny, причем update ходит через проксю на другом серваке, точнее хотелось бы чтоб так было. Чо делать?
  • DrWeb update, !*! Chris, 18:10 , 13-Май-04 (1)
  • DrWeb update, !*! LinaS, 19:41 , 13-Май-04 (3)
    • DrWeb update, !*! MoHaX, 04:16 , 14-Май-04 (4)
      • DrWeb update, !*! Dumid, 09:11 , 14-Май-04 (5)
        >
        >>а можно конкретнее, что делаешь и что дословно говорит?
        >>1. может, банально права на файлы баз не те
        >>2. может прокся не пускает
        >>
        >>так - мало информации
        >
        >Или firewall на самой фрюхе...


        На проксе стоит 5.2 в данный момент там крутится почта + DrWeb, на тестовой почте тоже самое + DrWeb, на проксе все проходит нормально, на тестовом серваке не идет, настройка прав на базу такая же как и на проксе, причем на тестовом поставил lynx и он нормально работает, может где нить в конфиге DrWeb надо сказать что он через проксю апдейтится?

  • DrWeb update, !*! hromach, 09:27 , 14-Май-04 (6)
    • DrWeb update, !*! Dumid, 12:32 , 14-Май-04 (7)
      >тебе-же ясно написали - доступ запрешен
      >разрешения на файлы проставь


      -rw-r--r-- 1 drweb drweb 10196 Mar 9 22:16 update.pl
      bash-2.05b# ./update.pl
      fetch: http://ypdates.drweb.ru/free/freebsd4/drweb32.lst: Permission denied

      Что это?

      • DrWeb update, !*! LinaS, 12:50 , 14-Май-04 (8)
        • DrWeb update, !*! Dumid, 12:56 , 14-Май-04 (9)

          >а почему он не исполняемый?


          В смысле? Вообще-то он исполняемый

          • DrWeb update, !*! LinaS, 13:30 , 14-Май-04 (10)
            • DrWeb update, !*! Dumid, 13:38 , 14-Май-04 (11)
              >>
              >>>а почему он не исполняемый?
              >>
              >>
              >>В смысле? Вообще-то он исполняемый
              >
              >-rw-r--r-- 1 drweb drweb 10196 Mar 9 22:16 update.pl
              >
              >так - не испольняемый.
              >если попробовать запустить:
              >$ perl ./update.pl
              >
              >что скажет


              Тоже самое, он мне это говорит вообще на любое действо

              • DrWeb update, !*! LinaS, 13:48 , 14-Май-04 (12)
                • DrWeb update, !*! Dumid, 15:24 , 14-Май-04 (13)
                  >>>>
                  >>>>>а почему он не исполняемый?
                  >>>>
                  >>>>
                  >>>>В смысле? Вообще-то он исполняемый
                  >>>
                  >>>-rw-r--r-- 1 drweb drweb 10196 Mar 9 22:16 update.pl
                  >>>
                  >>>так - не испольняемый.
                  >>>если попробовать запустить:
                  >>>$ perl ./update.pl
                  >>>
                  >>>что скажет
                  >>
                  >>
                  >>Тоже самое, он мне это говорит вообще на любое действо
                  >
                  >ну ок
                  >а что в самом update.pl
                  >если попробовать запустить эту команду fetch из него вручную?
                  >fetch смотрит переменную HTTP_PROXY - она определена?


                  Где это посмотреть?

                  • DrWeb update, !*! Dumid, 15:29 , 14-Май-04 (14)
                    update.pl

                    #! /usr/bin/perl
                    #------------------------------------------------------------------------------
                    # drwebd update script, version 1.01
                    #------------------------------------------------------------------------------
                    #
                    # ChangeLog
                    #
                    # 24-11-2002, Vsevolod Lutovinov <vla@drweb.ru>
                    #    
                    #    * CRC32 implementation, no more String::CRC32 needed
                    #    * fetch or wget search rewritten
                    #
                    #------------------------------------------------------------------------------
                    #use strict;

                    #------------------------------------------------------------------------------
                    my $TEMP = "/tmp";

                    my $system = '';
                    $system = "linux" if( $^O =~ /Linux/i );
                    $system = "freebsd4" if( $^O =~ /FreeBSD/i );
                    $system = "openbsd" if( $^O =~ /OpenBSD/i );
                    $system = "solaris" if( $^O =~ /Solaris/i );
                    $system = "netbsd" if( $^O =~ /NetBSD/i );
                    die "Unsupported OS!\n" unless $system;

                    my @urls =
                    (
                    #
                    # commercial URL example:
                    # "http://LOGIN:PASSWORD\@updates.drweb.ru/$system/drweb32.lst"
                    #
                      # main URL:
                      "http://updates.drweb.ru/free/$system/drweb32.lst",
                      # emergency URL's:
                      "http://www.dials.ru/drweb/$system/drweb32.lst"
                      # ...
                      # ...
                    );

                    my $ini = $ARGV[0];
                    if( $ini eq '' )
                    {
                      $ini = '/usr/local/etc/drweb/drweb32.ini' if $^O =~ /BSD/i;  
                      $ini = '/etc/drweb/drweb32.ini' if $ini eq '';    
                    }

                    my $fetch = `which fetch 2>&1`;

                    if( $fetch =~ /^\// )
                    {
                        chomp( $fetch ); $fetch = "$fetch -q -o";
                    }
                    else
                    {
                        $fetch = `which wget 2>&1`;
                        if( $fetch =~ /^\// )
                        {
                           chomp( $fetch ); $fetch = "$fetch -q -O";
                        }
                        else
                        {
                           $fetch = '';
                        }
                    }

                    if( $fetch eq '' )
                    {
                        print( "Please, install wget or fetch\n" ); exit;
                    }

                    my $engine = '';
                    my $bases = '';
                    my $update = '';
                    my $pidFile = '';

                       readIniFile( $ini );
                       die "Engine is not defined!" unless $engine;
                       die "Bases path is not defined!" unless $bases;
                       die "Update path is not defined!" unless $update;
                      
                       $pidFile = "/var/drweb/run/drwebd.pid" if( $pidFile eq '' );

                    my $version = readVersion( $engine );
                       die "Engine version error (invalid engine?)" unless $version;

                    my %Paths = ();

                       $engine =~ s/\/[\d\w\*\?\.]*$//;
                       $Paths{ "vdb\$" } = "$bases";
                       $Paths{ "dll\$" } = "$engine";

                       foreach my $url ( @urls )
                       {
                         next if $url !~ m/^(.*)\/([\w.]+)$/o; # invalid URL
                         my ( $b_url, $l_url ) = ( $1, $2 );

                         open FH, "$fetch - $url |" or next;
                         my $my_section = 0;

                         while ( <FH> )
                         {
                           tr/\012\015//d;
                           $my_section = ($1 eq $version) if /^\[(.+)\]/o;
                           next unless $my_section;
                           last; # section is found
                         }

                         my $mask = ".*";   # all files in your version section
                         my чl; my ╜d; my ╜ded;

                         while ( <FH> )
                         {
                           tr/\012\015//d;
                          
                           next if /txt/;        # 1.01 // COMMENT THIS LINE FOR drw*.txt FILES UPDATE
                          
                           last if /^\[---\]/o;  # no more sections for this versions
                           $mask = 'drw.*\.vdb', next if /^\[(.+)\]/o; # new version, *.vdb only
                           if( /$mask/ )
                           {
                             $del{$1} = hex($2) || '', next
                             if /^\-(\w[\w\.\-]*)[, \t]*([a-fA-F\d]*)/o;
                             $del{$1} = $add{$1} = hex($2) || '', next
                               if /^\=(\w[\w\.\-]*)[, \t]*([a-fA-F\d]*)/o;
                             $add{$1} = hex($2) || '', next
                               if /^\+?(\w[\w\.\-]*)[, \t]*([a-fA-F\d]*)/o;
                           }
                         }

                         close FH;

                         foreach my $file ( keys чl )
                         {
                            my $full = fullPath( $file );
                            next unless -e $full;
                            unlink $full or warn "Can't delete $full $!";
                         }

                         foreach my $file ( keys ╜d )
                         {
                            my $full = fullPath( $file );

                            if ( -e $full )
                            {
                               next if $add{$file} ne '' and $add{$file} == &filecrc32($full);
                            }

                            my $newfile = "$TEMP/$file".rand();
                            system( "$fetch $newfile $b_url/$file" );    
                            warn "Can't get $file" unless -e "$newfile";
                            $added{ fullPath( $file ) } = $newfile, next if $add{$file} ne '' and $add{$file} == &filecrc32( "$newfile" );
                            warn "Can't get $file with valid CRC32";
                            unlink "$newfile";
                         }

                         my $updated = 0;
                         foreach my $file ( keys ╜ded )
                         {
                           my $add_file = $added{ $file };
                           if( -e( $add_file ) )
                           {
                               `mv $add_file $file`
                           };
                           $updated++;
                         }
                        
                         if( $updated > 0 )
                         {
                            open( FH, "$pidFile" ) || die "Can not open $pidFile: $!\n";
                            my $pid = <FH>;
                            close( FH );
                            chomp( $pid );
                            kill 'HUP', $pid;
                         }
                         exit;
                       }


                    #------------------------------------------------------------------------------
                    sub readVersion
                    {
                      open( FH, "$_[0]" ) || die "Can not open $_[0]!";
                      seek( FH, 0x400, 0 );
                      my $ver = 0;
                      read( FH, $ver, 4 );
                      close( FH );
                      return unpack( "I", $ver );
                    }

                    #------------------------------------------------------------------------------
                    sub readIniFile
                    {
                      my $section = 'Daemon'; # 'Scanner'

                      open( FH, "$_[0]" ) || die "Can not open $_[0]!";

                      my $my_section = '';

                      while( <FH> )
                      {
                        tr/\012\015//d;
                        s/^[\t ]*//g;
                        $my_section = ($1 eq $section), next if /^\[(.+)\]/o;
                        next unless $my_section;
                        if( /^EnginePath/ )
                        {
                          my ( $k, $v ) = split( 'EnginePath' );
                          if( $v ne '' )
                          {
                            $engine = $v;
                            $engine =~ s/^[\"\t =]*//g;
                            $engine =~ s/[\" \t]*$//g;      
                          }
                        }
                        elsif( /^PidFile/ )
                        {
                          my ( $k, $v ) = split( 'PidFile' );
                          if( $v ne '' )
                          {
                            $pidFile= $v;
                            $pidFile =~ s/^[\"\t =]*//g;
                            $pidFile =~ s/[\" \t]*$//g;      
                          }
                        }
                        elsif( /^VirusBase/ && $bases eq '' ) # first base path only
                        {
                          my ( $k, $v ) = split( 'VirusBase' );
                          if( $v ne '' )
                          {
                            $bases = $v;

                            $bases =~ s/^[\"\t =]*//g;
                            $bases =~ s/,.*$//;
                            $bases =~ s/[\" \t]*$//g;    
                        $bases =~ s/\/[\d\w\*\?\.]*$//;
                          }
                        }
                        elsif( /^UpdatePath/ )
                        {
                          my ( $k, $v ) = split( 'UpdatePath' );
                          if( $v ne '' )
                          {
                            $update = $v;
                            $update =~ s/^[\"\t =]*//g;
                            $update =~ s/[\" \t]*$//g;      
                          }
                        }
                      }
                      close( FH );
                    }

                    #------------------------------------------------------------------------------
                    sub fullPath
                    {
                      my $file = $_[0];

                      foreach my $template ( keys %Paths )
                      {
                         if( $file =~ /$template/ )
                         {
                              return "$Paths{ $template }/$file";
                         }
                      }

                      return "$update/$file";
                    }

                    #----------------------------------------------------------------------------
                    sub crc32
                    {
                      my $s = $_[0];
                      my $n = 0;
                      my $c = 0xffffffff;

                      my @crc32t =
                      (
                      0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
                      0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4,
                      0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07,
                      0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
                      0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856,
                      0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
                      0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
                      0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
                      0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3,
                      0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a,
                      0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
                      0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
                      0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190,
                      0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
                      0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e,
                      0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
                      0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed,
                      0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
                      0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
                      0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
                      0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
                      0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5,
                      0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010,
                      0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
                      0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17,
                      0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6,
                      0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615,
                      0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
                      0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344,
                      0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
                      0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a,
                      0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
                      0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1,
                      0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c,
                      0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
                      0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
                      0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe,
                      0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31,
                      0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c,
                      0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
                      0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b,
                      0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
                      0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
                      0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
                      0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278,
                      0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7,
                      0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66,
                      0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
                      0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
                      0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8,
                      0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
                      0x2d02ef8d
                      );

                      while( $n < length( $s ) )
                      {    
                        $c = $crc32t[ ( $c ^ ord( substr( $s, $n, 1 ) ) ) & 0xFF ] ^ ( $c >> 8 );
                        $n++;
                      }
                      return $c ^ 0xffffffff;
                    }

                    #----------------------------------------------------------------------------
                    sub filecrc32
                    {
                      if( !open( F, $_[0] ) )
                      {
                         warn( "Can not open $_[0] ($!)!" ); return 0;
                      }
                      binmode( F );
                      my $c = crc32( join( "", <F> ) );
                      close( F );
                      return $c;
                    }

                    #----------------------------------------------------------------------------





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру