Ad Widget

Collapse

Zabbix и IBM DS3512

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • anisimov_evgeniy
    Member
    • Jul 2014
    • 37

    #1

    Zabbix и IBM DS3512

    Добрый день, коллеги!
    Помогите, у кого был опыт, подружить zabbix с хранилкой.
    Задача стоит следующая - получать состояние логических/физических дисков в zabbix.
    Реализовать пытаюсь по мануалу - http://habrahabr.ru/sandbox/72882/
    Затык у меня на моменте когда пытаюсь скриптом спросить хранилку о состоянии дисков. В ответ получаю всегда -2, что означает что такой диск не найден. Хотя номер полки и id диска задаю существующий. SMcli состояние выводит. Кажется, собака порылась в парсинге, не могу найти где именно.
  • aib
    Senior Member
    • Jan 2014
    • 1615

    #2
    Хотелось бы увидеть чуть больше информации.
    1) вывод команды SMcli
    2) Вашу конфигурацию Item's и Host's
    3) Подтверждение того, что скрипты выполняются под пользователем zabbix
    4) Ваши UserParameter= из конфигурационного файла агента
    5) Вывод команды zabbix_get при запросе ваших UserParameter и кусочек лога Zabbix Agent (уровня Debuglevel=4)
    Sincerely yours,
    Aleksey

    Comment

    • anisimov_evgeniy
      Member
      • Jul 2014
      • 37

      #3
      Добрый день. Прошу прощения за задержку с ответом, были некоторые трудности.. Надеюсь Вы все еще здесь и сможете мне помочь разобраться.

      Originally posted by aib
      Хотелось бы увидеть чуть больше информации.
      1) вывод команды smcli
      show all drives

      Code:
      root@mn2:~/zabbix_distr/linux# /opt/ibm_ds/client/smcli 10.1.100.233 -c "show all                                                                                                                    drives;" | more
      Warning! No Monitor password is set for the storage subsystem.
      Performing syntax check...
      
      Syntax check complete.
      
      Executing script...
      
      DRIVES------------------------------
      
      SUMMARY
         Number of drives: 24
            Current media type(s): Hard Disk Drive (24)
            Current interface type(s): Serial Attached SCSI (SAS) (24)
            Drive capabilities: T10 PI (Protection Information) (T10 PI) (16)
      
         BASIC:
      
            ENCLOSURE, SLOT  STATUS   CAPACITY      MEDIA TYPE       INTERFACE TYPE  CURRENT DATA RATE  PRODUCT ID        FIRMWARE VERSION  CAPABILITIES  
            0,    1          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    2          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    3          Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            0,    4          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             ST33000650SS      BC3B              T10 PI        
            0,    5          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    6          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    7          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    8          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    9          Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    10         Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    11         Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            0,    12         Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            99,    1         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST32000444SS      BC29                            
            99,    2         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            99,    3         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST32000444SS      BC29                            
            99,    4         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            99,    5         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            99,    6         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            99,    7         Optimal  1,863.016 GB  Hard Disk Drive  SAS             6 Gbps             ST2000NM0001      BC42                            
            99,    8         Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            99,    9         Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            99,    10        Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            99,    11        Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
            99,    12        Optimal  2,794.519 GB  Hard Disk Drive  SAS             6 Gbps             HUS723030ALS64    J3K3              T10 PI        
      
         DRIVE CHANNELS (Controller A):
      
            ENCLOSURE, SLOT  PREFERRED CHANNEL  REDUNDANT CHANNEL  
            0,    1          1                  2                  
            0,    2          2                  1                  
            0,    3          1                  2                  
            0,    4          2                  1                  
            0,    5          1                  2                  
            0,    6          2                  1                  
            0,    7          1                  2                  
            0,    8          2                  1                  
            0,    9          1                  2                  
            0,    10         2                  1                  
            0,    11         1                  2                  
            0,    12         2                  1                  
            99,    1         1                  2                  
            99,    2         2                  1                  
            99,    3         1                  2                  
            99,    4         2                  1                  
            99,    5         1                  2                  
            99,    6         2                  1                  
            99,    7         1                  2                  
            99,    8         2                  1                  
            99,    9         1                  2                  
            99,    10        2                  1                  
            99,    11        1                  2                  
            99,    12        2                  1                  
      
      
      HOT SPARE COVERAGE:
         The following arrays are not protected: None - All arrays are protected
         Total hot spare drives: 1
      
            Standby:  1  
            In use:   0  
      
         Standby drive at enclosure 0, slot 3 (SAS, 1,863.016 GB)
            Protects the following arrays: videoarchive
      
      
         DETAILS
         Drive at Enclosure 0, Slot 1
          
      
            Status:                  Optimal                                          
                                                                                      
            Mode:                    Assigned                                         
            Raw capacity:            2,794.519 GB                                     
            Usable capacity:         2,794.019 GB                                     
            World-wide identifier:   50:00:cc:a0:3e:96:8a:e8:00:00:00:00:00:00:00:00  
            Associated disk pool:    Disk_Pool_1                                      
      
      
            Port      Channel      
            0         1            
            1         2            
      
      
            Media type:                                        Hard Disk Drive                           
            Interface type:                                    Serial Attached SCSI (SAS)                
            Drive path redundancy:                             OK                                        
                                                                                                         
            Drive capabilities:                                T10 PI (Protection Information) (T10 PI)  
                                                                                                         
            Security Capable:                                  No                                        
            Secure:                                            No                                        
            Read/write accessible:                             Yes                                       
            Drive security key identifier:                     Not Applicable                            
                                                                                                         
            T10 PI (Protection Information) (T10 PI) capable:  Yes                                       
                                                                                                         
            Speed:                                             7,200 RPM                                 
            Current data rate:                                 6 Gbps                                    
            Product ID:                                        HUS723030ALS64                            
            Drive Firmware Version:                            J3K3                                      
            Serial number:                                     YVJNTL6D                                  
            Manufacturer:                                      IBM-ESXS                                  
            Date of manufacture:                               March 27, 2013

      show allLogicalDrives summary
      Code:
      root@mn2:/etc/zabbix/scripts# /opt/IBM_DS/client/SMcli 10.1.100.233 -c "show allLogicalDrives summary;" | more
      Warning! No Monitor password is set for the storage subsystem.
      Performing syntax check...
      
      Syntax check complete.
      
      Executing script...
      
      STANDARD LOGICAL DRIVES SUMMARY
      Number of standard logical drives: 2
      
      
      Name     Thin Provisioned     Status     Capacity     Accessible by     Source
      1        No                   Optimal    10.913 TB    Host VS2          Array videoarchive
      3        No                   Optimal    29.925 TB    Host VS1          Disk Pool Disk_Pool_1
      Originally posted by aib
      2) Вашу конфигурацию item's и host's
      3) Подтверждение того, что скрипты выполняются под пользователем zabbix
      До заббикса дело еще не дошло, я в консоль всегда получаю -2, а должен либо 0 либо 1

      Code:
      root@mn2:/etc/zabbix/scripts# ls -l
      total 12
      -rwxrwxrwx 1 755 zabbix 3843 Sep  5 11:52 check_IBM_DS_health_1.5.sh
      -rwxrwxrwx 1 755 zabbix 2909 Sep  5 11:52 DS4700.Drive.state.pl
      -rwxrwxrwx 1 755 zabbix 2454 Sep  5 11:52 DS4700.Logical.state.pl
      Code:
      root@mn2:/etc/zabbix/scripts# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1
      -2
      root@mn2:/etc/zabbix/scripts/DS4700.Logical.state.pl -LogicalID 3
      -2
      Originally posted by aib
      4) Ваши userparameter= из конфигурационного файла агента
      Code:
      UserParameter=DS4700.Drive.state[*],/usr/bin/perl /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID $1 -DiskID $2
      UserParameter=DS4700.Logical.state[*],/usr/bin/perl /etc/zabbix/scripts/DS4700.Logical.state.pl -LogicalID $1
      Originally posted by aib
      5) Вывод команды zabbix_get при запросе ваших userparameter и кусочек лога zabbix agent (уровня debuglevel=4)
      root@mn2:/etc/zabbix/scripts# zabbix_get -s 127.0.0.1 -p 10050 -k "DS4700.Drive.state[0,3]"
      ZBX_NOTSUPPORTED
      root@mn2:/etc/zabbix/scripts# zabbix_get -s 127.0.0.1 -p 10050 -k "DS4700.Logical.state[3]"
      ZBX_NOTSUPPORTED

      -----------UPDATE----------------
      тут понял в чем причина - убрал в userparameters /usr/bin/perl - теперь просто выдает -2))
      кэш файлы на обе команды создаются, в нем информация с хранилки. Верная. Что то с парсингом...

      Кусок лога
      Code:
      15098:20140905:153101.093 Requested [DS4700.Logical.state[3]]
       15098:20140905:153101.093 In zbx_popen() command:'/usr/bin/perl /etc/zabbix/scripts/DS4700.Logical.state.pl -LogicalID 3'
       15098:20140905:153101.094 End of zbx_popen():7
       15785:20140905:153101.094 zbx_popen(): executing script
       15100:20140905:153101.669 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153101.669 End of send_buffer():SUCCEED
       15100:20140905:153101.669 active checks #1 [idle 1 sec]
       15096:20140905:153101.728 collector [processing data]
       15096:20140905:153101.728 In update_cpustats()
       15096:20140905:153101.728 End of update_cpustats()
       15096:20140905:153101.729 collector [idle 1 sec]
       15100:20140905:153102.669 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153102.669 End of send_buffer():SUCCEED
       15100:20140905:153102.669 active checks #1 [idle 1 sec]
       15096:20140905:153102.729 collector [processing data]
       15096:20140905:153102.729 In update_cpustats()
       15096:20140905:153102.729 End of update_cpustats()
       15096:20140905:153102.729 collector [idle 1 sec]
       15097:20140905:153102.770 listener #1 [processing request]
       15097:20140905:153102.771 Requested [agent.ping]
       15097:20140905:153102.771 Sending back [1]
       15097:20140905:153102.771 listener #1 [waiting for connection]
       15100:20140905:153103.670 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153103.670 End of send_buffer():SUCCEED
       15100:20140905:153103.670 active checks #1 [idle 1 sec]
       15096:20140905:153103.730 collector [processing data]
       15096:20140905:153103.730 In update_cpustats()
       15096:20140905:153103.730 End of update_cpustats()
       15096:20140905:153103.730 collector [idle 1 sec]
       15098:20140905:153104.093 In zbx_waitpid()
       15098:20140905:153104.095 zbx_waitpid() killed by signal 15
       15098:20140905:153104.096 End of zbx_waitpid():15785
       15098:20140905:153104.096 Sending back [ZBX_NOTSUPPORTED]
      [/quote]
      [quote]
      15098:20140905:153009.195 Requested [DS4700.Drive.state[0,3]]
       15098:20140905:153009.195 In zbx_popen() command:'/usr/bin/perl /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 3'
       15098:20140905:153009.196 End of zbx_popen():7
       15725:20140905:153009.196 zbx_popen(): executing script
       15100:20140905:153009.620 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153009.620 End of send_buffer():SUCCEED
       15100:20140905:153009.620 active checks #1 [idle 1 sec]
       15096:20140905:153009.687 collector [processing data]
       15096:20140905:153009.687 In update_cpustats()
       15096:20140905:153009.687 End of update_cpustats()
       15096:20140905:153009.687 collector [idle 1 sec]
       15100:20140905:153010.620 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153010.620 End of send_buffer():SUCCEED
       15100:20140905:153010.620 active checks #1 [idle 1 sec]
       15096:20140905:153010.688 collector [processing data]
       15096:20140905:153010.688 In update_cpustats()
       15096:20140905:153010.688 End of update_cpustats()
       15096:20140905:153010.689 collector [idle 1 sec]
       15100:20140905:153011.621 In send_buffer() host:'127.0.0.1' port:10051 values:0/100
       15100:20140905:153011.622 End of send_buffer():SUCCEED
       15100:20140905:153011.622 active checks #1 [idle 1 sec]
       15096:20140905:153011.689 collector [processing data]
       15096:20140905:153011.689 In update_cpustats()
       15096:20140905:153011.689 End of update_cpustats()
       15096:20140905:153011.689 collector [idle 1 sec]
       15098:20140905:153012.195 In zbx_waitpid()
       15098:20140905:153012.197 zbx_waitpid() killed by signal 15
       15098:20140905:153012.197 End of zbx_waitpid():15725
       15098:20140905:153012.197 Sending back [ZBX_NOTSUPPORTED]
      Last edited by anisimov_evgeniy; 05-09-2014, 15:39.

      Comment

      • aib
        Senior Member
        • Jan 2014
        • 1615

        #4
        1) Возможно, сообщения об ошибке "Отсутсвие пароля" будут мешать разбирать основной вывод. Постарайтесь с ними разобраться.
        Code:
        warning! No monitor password is set for the storage subsystem.
        2) Надеюсь, вы проставили нормальные, правильные адреса хранилищ в тексте скриптов?
        Code:
        $DS4700Controllers='192.168.10.102 192.168.10.103';
        а также пути к утилите и временным файлам?
        Code:
        $FileCache='/tmp/zabbix.DS4700.Drive';
        $IBMSMcli='/opt/IBM_DS/client/SMcli';
        Кстати: временный файл, созданный под root, может быть недоступен под zabbix и скрипт поломается, не сумев обратиться к файлу.

        3) для отладки добавьте отладочный вывод переменных (потом закомментируете) после строк
        Code:
                       $vDiskID=$ARGV[$i+1];
        [B]print("$vDiskID");[/B]
        и еще одну
        Code:
            $vEnclosureID=$ARGV[$i+1];
        [B]print("$vEnclosureID");[/B]
        Проверьте, что скрипт получил те данные, которые вы ему передали.

        4) Обратите внимание на строку сравнения:
        Code:
                if ($_=~ m/BASIC/){$vPart='BASIC';}
        И заметьте, что в статье приведен вывод, где слово BASIC написано заглавными буквами.
        А ваша утилита выдает basic: строчными буквами.
        Попробуйте продублировать строку и написать basic так, как у вас в выводе.
        Добавьте отладочный вывод перед дальнейшей обработкой.
        Code:
        [B]print("$vPart ");[/B]
                if ($vPart eq 'BASIC'){
        5) Во втором скрипте, про логические диски, обратите внимание на строку, которая ищет ИМЯ массива. Там сравнение со строкой, которая (вновь) не совпадает с вашим выводом
        У автора вывод выглядит так:
        Code:
        NAME                STATUS   CAPACITY      RAID LEVEL  ARRAY       MEDIA TYPE       INTERFACE TYPE
        У вас команда show allLogicalDrives summary выдает такую строку
        Code:
        Name Thin Provisioned Status Capacity Accessible by Source
        В то время, как скрипт ищет строку, содержащую только NAME и STATUS
        Code:
           if ($_=~ m/NAME                STATUS/){$vPart='NAME';}
        Опять таки - подгоните сравнение под ваш вывод и с помощью добавочной отладочной печати убедитесь, что $vPart приняла правильное значение.
        ==============
        Вот как-то так. Прошу прощения за общие советы - но только на вашем конкретном оборудовании можно получить правильные результаты.

        Удачи!
        Sincerely yours,
        Aleksey

        Comment

        • anisimov_evgeniy
          Member
          • Jul 2014
          • 37

          #5
          Originally posted by aib
          2) Надеюсь, вы проставили нормальные, правильные адреса хранилищ в тексте скриптов?
          Code:
          $DS4700Controllers='192.168.10.102 192.168.10.103';
          а также пути к утилите и временным файлам?
          Code:
          $FileCache='/tmp/zabbix.DS4700.Drive';
          $IBMSMcli='/opt/IBM_DS/client/SMcli';
          Да, всё правильно проставил
          Originally posted by aib
          Кстати: временный файл, созданный под root, может быть недоступен под zabbix и скрипт поломается, не сумев обратиться к файлу.
          Проверил
          Code:
          root@mn2:/tmp# ls -l
          -rwxr-xr-x 1 zabbix zabbix 67876 Sep  5 18:11 zabbix.DS4700.Drive
          -rwxr-xr-x 1 zabbix zabbix   557 Sep  5 17:56 zabbix.DS4700.Logical
          Originally posted by aib
          3) для отладки добавьте отладочный вывод переменных (потом закомментируете) после строк
          Code:
                         $vDiskID=$ARGV[$i+1];
          [B]print("$vDiskID");[/B]
          и еще одну
          Code:
              $vEnclosureID=$ARGV[$i+1];
          [B]print("$vEnclosureID");[/B]
          Проверьте, что скрипт получил те данные, которые вы ему передали.
          Сделал, скрипт получает правильные данные
          Code:
          root@mn2:/tmp# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1
          01-2
          Originally posted by aib
          4) Обратите внимание на строку сравнения:
          Code:
                  if ($_=~ m/BASIC/){$vPart='BASIC';}
          И заметьте, что в статье приведен вывод, где слово BASIC написано заглавными буквами.
          А ваша утилита выдает basic: строчными буквами.
          Попробуйте продублировать строку и написать basic так, как у вас в выводе.
          Утилита выдает заглавными, так же как и в примере.
          Originally posted by aib
          Добавьте отладочный вывод перед дальнейшей обработкой.
          Code:
          [B]print("$vPart ");[/B]
                  if ($vPart eq 'BASIC'){
          Добавил, вот что получается
          Code:
          root@mn2:/tmp# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1
          01               BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC BASIC DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DRIVE CHANNELS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS DETAILS -2

          Comment

          • aib
            Senior Member
            • Jan 2014
            • 1615

            #6
            ok
            теперь первые три отладочных вывода можно убрать(или закомментировать)

            Добавьте вывод после строки
            Code:
                            $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
            [B]print("vSplitedText[1] = $vSplitedText[1]\n");[/B]
            [B]print("vDisk_states     = $vDisk_states{$vSplitedText[1]}\n");[/B]
            и проверьте, что получилось
            Sincerely yours,
            Aleksey

            Comment

            • anisimov_evgeniy
              Member
              • Jul 2014
              • 37

              #7
              Originally posted by aib
              ok
              теперь первые три отладочных вывода можно убрать(или закомментировать)

              Добавьте вывод после строки
              Code:
                              $vdisk_states{$vsplitedtext[1]}=$vdiskstate[0];
              [b]print("vsplitedtext[1] = $vsplitedtext[1]\n");[/b]
              [b]print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");[/b]
              и проверьте, что получилось
              Теперь просто -2

              Comment

              • aib
                Senior Member
                • Jan 2014
                • 1615

                #8
                добавьте отладку перед циклом
                Code:
                [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                print("vSplitedText[2] = $vSplitedText[2]\n");
                [/B]
                        if ($vPart eq 'BASIC'){
                Sincerely yours,
                Aleksey

                Comment

                • anisimov_evgeniy
                  Member
                  • Jul 2014
                  • 37

                  #9
                  Originally posted by aib
                  добавьте отладку перед циклом
                  Code:
                  [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                  print("vSplitedText[2] = $vSplitedText[2]\n");
                  [/B]
                          if ($vPart eq 'BASIC'){
                  Code:
                  root@mn2:/# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1 | more
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Current media type(s): Hard Disk Drive (24)
                  
                  vSplitedText[2] =
                  vSplitedText[1] = Current interface type(s): Serial Attached SCSI (SAS) (24)
                  
                  vSplitedText[2] =
                  vSplitedText[1] = Drive capabilities: T10 PI (Protection Information) (T10 PI) (16)
                  
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = ENCLOSURE, SLOT  STATUS   CAPACITY
                  vSplitedText[2] = MEDIA TYPE
                  vSplitedText[1] = 0,    1
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    2
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    3
                  vSplitedText[2] =     Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    4
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    5
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    6
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    7
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    8
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    9
                  vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    10
                  vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    11
                  vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 0,    12
                  vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    1
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    2
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    3
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    4
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    5
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    6
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    7
                  vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    8
                  vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    9
                  vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    10
                  vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    11
                  vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] = 99,    12
                  vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = ENCLOSURE, SLOT  PREFERRED CHANNEL  REDUNDANT CHANNEL
                  
                  vSplitedText[2] =
                  vSplitedText[1] = 0,    1
                  vSplitedText[2] =     1
                  vSplitedText[1] = 0,    2
                  vSplitedText[2] =     2
                  vSplitedText[1] = 0,    3
                  vSplitedText[2] =     1
                  vSplitedText[1] = 0,    4
                  vSplitedText[2] =     2
                  vSplitedText[1] = 0,    5
                  vSplitedText[2] =     1
                  vSplitedText[1] = 0,    6
                  vSplitedText[2] =     2
                  vSplitedText[1] = 0,    7
                  vSplitedText[2] =     1
                  vSplitedText[1] = 0,    8
                  vSplitedText[2] =     2
                  vSplitedText[1] = 0,    9
                  vSplitedText[2] =     1
                  vSplitedText[1] = 0,    10
                  vSplitedText[2] =    2
                  vSplitedText[1] = 0,    11
                  vSplitedText[2] =    1
                  vSplitedText[1] = 0,    12
                  vSplitedText[2] =    2
                  vSplitedText[1] = 99,    1
                  vSplitedText[2] =    1
                  vSplitedText[1] = 99,    2
                  vSplitedText[2] =    2
                  vSplitedText[1] = 99,    3
                  vSplitedText[2] =    1
                  vSplitedText[1] = 99,    4
                  vSplitedText[2] =    2
                  vSplitedText[1] = 99,    5
                  vSplitedText[2] =    1
                  vSplitedText[1] = 99,    6
                  vSplitedText[2] =    2
                  vSplitedText[1] = 99,    7
                  vSplitedText[2] =    1
                  vSplitedText[1] = 99,    8
                  vSplitedText[2] =    2
                  vSplitedText[1] = 99,    9
                  vSplitedText[2] =    1
                  vSplitedText[1] = 99,    10
                  vSplitedText[2] =   2
                  vSplitedText[1] = 99,    11
                  vSplitedText[2] =   1
                  vSplitedText[1] = 99,    12
                  vSplitedText[2] =   2
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Standby:  1
                  
                  vSplitedText[2] =
                  vSplitedText[1] = In use:   0
                  
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Protects the following arrays: videoarchive
                  
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Status:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Mode:
                  vSplitedText[2] =
                  vSplitedText[1] = Raw capacity:
                  vSplitedText[2] =
                  vSplitedText[1] = Usable capacity:
                  vSplitedText[2] =    2,794.019 GB
                  vSplitedText[1] = World-wide identifier:   50:00:cc:a0:3e:96:8a:e8:00:00:00:00:00:00:00:00
                  
                  vSplitedText[2] =
                  vSplitedText[1] = Associated disk pool:    Disk_Pool_1
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Port
                  vSplitedText[2] = Channel
                  vSplitedText[1] = 0
                  vSplitedText[2] =    1
                  vSplitedText[1] = 1
                  vSplitedText[2] =    2
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Media type:
                  vSplitedText[2] =
                  vSplitedText[1] = Interface type:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive path redundancy:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Drive capabilities:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Security Capable:
                  vSplitedText[2] =
                  vSplitedText[1] = Secure:
                  vSplitedText[2] =
                  vSplitedText[1] = Read/write accessible:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive security key identifier:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = T10 PI (Protection Information) (T10 PI) capable:  Yes
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Speed:
                  vSplitedText[2] =
                  vSplitedText[1] = Current data rate:
                  vSplitedText[2] =
                  vSplitedText[1] = Product ID:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive Firmware Version:
                  vSplitedText[2] =
                  vSplitedText[1] = Serial number:
                  vSplitedText[2] =
                  vSplitedText[1] = Manufacturer:
                  vSplitedText[2] =
                  vSplitedText[1] = Date of manufacture:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Status:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Mode:
                  vSplitedText[2] =
                  vSplitedText[1] = Raw capacity:
                  vSplitedText[2] =
                  vSplitedText[1] = Usable capacity:
                  vSplitedText[2] =    2,794.019 GB
                  vSplitedText[1] = World-wide identifier:   50:00:cc:a0:3e:97:39:cc:00:00:00:00:00:00:00:00
                  
                  vSplitedText[2] =
                  vSplitedText[1] = Associated disk pool:    Disk_Pool_1
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Port
                  vSplitedText[2] = Channel
                  vSplitedText[1] = 0
                  vSplitedText[2] =    2
                  vSplitedText[1] = 1
                  vSplitedText[2] =    1
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Media type:
                  vSplitedText[2] =
                  vSplitedText[1] = Interface type:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive path redundancy:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Drive capabilities:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Security Capable:
                  vSplitedText[2] =
                  vSplitedText[1] = Secure:
                  vSplitedText[2] =
                  vSplitedText[1] = Read/write accessible:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive security key identifier:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = T10 PI (Protection Information) (T10 PI) capable:  Yes
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Speed:
                  vSplitedText[2] =
                  vSplitedText[1] = Current data rate:
                  vSplitedText[2] =
                  vSplitedText[1] = Product ID:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive Firmware Version:
                  vSplitedText[2] =
                  vSplitedText[1] = Serial number:
                  vSplitedText[2] =
                  vSplitedText[1] = Manufacturer:
                  vSplitedText[2] =
                  vSplitedText[1] = Date of manufacture:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Status:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Mode:
                  vSplitedText[2] =
                  vSplitedText[1] = Raw capacity:
                  vSplitedText[2] =
                  vSplitedText[1] = Usable capacity:
                  vSplitedText[2] =    1,862.516 GB
                  vSplitedText[1] = World-wide identifier:   50:00:c5:00:40:f9:14:9b:00:00:00:00:00:00:00:00
                  
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Port
                  vSplitedText[2] = Channel
                  vSplitedText[1] = 0
                  vSplitedText[2] =    1
                  vSplitedText[1] = 1
                  vSplitedText[2] =    2
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Media type:
                  vSplitedText[2] =
                  vSplitedText[1] = Interface type:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive path redundancy:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Security Capable:
                  vSplitedText[2] =
                  vSplitedText[1] = Secure:
                  vSplitedText[2] =
                  vSplitedText[1] = Read/write accessible:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive security key identifier:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = T10 PI (Protection Information) (T10 PI) capable:  No
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Speed:
                  vSplitedText[2] =
                  vSplitedText[1] = Current data rate:
                  vSplitedText[2] =
                  vSplitedText[1] = Product ID:
                  vSplitedText[2] =
                  vSplitedText[1] = Drive Firmware Version:
                  vSplitedText[2] =
                  vSplitedText[1] = Serial number:
                  vSplitedText[2] =
                  vSplitedText[1] = Manufacturer:
                  vSplitedText[2] =
                  vSplitedText[1] = Date of manufacture:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Status:
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Mode:
                  vSplitedText[2] =
                  vSplitedText[1] = Raw capacity:
                  vSplitedText[2] =
                  vSplitedText[1] = Usable capacity:
                  vSplitedText[2] =    2,794.019 GB
                  vSplitedText[1] = World-wide identifier:   50:00:c5:00:42:39:76:3f:00:00:00:00:00:00:00:00
                  
                  vSplitedText[2] =
                  vSplitedText[1] = Associated disk pool:    Disk_Pool_1
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] =
                  vSplitedText[2] =
                  vSplitedText[1] = Port
                  vSplitedText[2] = Channel
                  И так далее..

                  Comment

                  • aib
                    Senior Member
                    • Jan 2014
                    • 1615

                    #10
                    Предыдущую отладку уберите.

                    Чуть переделайте цикл, добавив отладочную печать.
                    Code:
                            if ($vPart eq 'BASIC'){
                                @vDiskState=();
                    [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                    print("vSplitedText[2] = $vSplitedText[2]\n\n");
                    [/B]
                    # в этом сравнении шаблон включает ОДИН пробел между запятой и цифрой
                                if ($vSplitedText[1]=~ m/[0-9], [0-9]/){
                                    @vDiskState=split(' ',$vSplitedText[2]);
                                    $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                                }
                    # в этом сравнении шаблон включает ЧЕТЫРЕ пробелА между запятой и цифрой и может работать для первой цифры от 0 до 99
                    
                                if ($vSplitedText[1]=~ m/[0-9]+,    [0-9]/){
                                    @vDiskState=split(' ',$vSplitedText[2]);
                                    $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                                }
                    
                            }
                    Sincerely yours,
                    Aleksey

                    Comment

                    • anisimov_evgeniy
                      Member
                      • Jul 2014
                      • 37

                      #11
                      Originally posted by aib
                      Предыдущую отладку уберите.

                      Чуть переделайте цикл, добавив отладочную печать.
                      Code:
                              if ($vPart eq 'BASIC'){
                                  @vDiskState=();
                      [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                      print("vSplitedText[2] = $vSplitedText[2]\n\n");
                      [/B]
                      # в этом сравнении шаблон включает ОДИН пробел между запятой и цифрой
                                  if ($vSplitedText[1]=~ m/[0-9], [0-9]/){
                                      @vDiskState=split(' ',$vSplitedText[2]);
                                      $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                                  }
                      # в этом сравнении шаблон включает ЧЕТЫРЕ пробелА между запятой и цифрой и может работать для первой цифры от 0 до 99
                      
                                  if ($vSplitedText[1]=~ m/[0-9]+,    [0-9]/){
                                      @vDiskState=split(' ',$vSplitedText[2]);
                                      $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                                  }
                      
                              }
                      Один пробел
                      Code:
                      vSplitedText[1] =
                      vSplitedText[2] =
                      
                      vSplitedText[1] =
                      vSplitedText[2] =
                      
                      vSplitedText[1] = ENCLOSURE, SLOT  STATUS   CAPACITY
                      vSplitedText[2] = MEDIA TYPE
                      
                      vSplitedText[1] = 0,    1
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    2
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    3
                      vSplitedText[2] =     Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    4
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    5
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    6
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    7
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    8
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    9
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    10
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    11
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    12
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    1
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    2
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    3
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    4
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    5
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    6
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    7
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    8
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    9
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    10
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    11
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    12
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] =
                      vSplitedText[2] =
                      -2
                      Четыре пробела и 0-9+
                      Code:
                      vSplitedText[1] =
                      vSplitedText[2] =
                      
                      vSplitedText[1] =
                      vSplitedText[2] =
                      
                      vSplitedText[1] = ENCLOSURE, SLOT  STATUS   CAPACITY
                      vSplitedText[2] = MEDIA TYPE
                      
                      vSplitedText[1] = 0,    1
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    2
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    3
                      vSplitedText[2] =     Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    4
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    5
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    6
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    7
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    8
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    9
                      vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    10
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    11
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 0,    12
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    1
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    2
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    3
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    4
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    5
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    6
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    7
                      vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    8
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    9
                      vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    10
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    11
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] = 99,    12
                      vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                      
                      vSplitedText[1] =
                      vSplitedText[2] =
                      
                      -2

                      Comment

                      • aib
                        Senior Member
                        • Jan 2014
                        • 1615

                        #12
                        Прошу прощения, забыл включить отладку внутрь второй проверки
                        Code:
                                if ($vPart eq 'BASIC'){
                                    @vDiskState=();
                        [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                        print("vSplitedText[2] = $vSplitedText[2]\n\n");
                        [/B]
                        # в этом сравнении шаблон включает ОДИН пробел между запятой и цифрой
                                    if ($vSplitedText[1]=~ m/[0-9], [0-9]/){
                                        @vDiskState=split(' ',$vSplitedText[2]);
                                        $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                        [B]print("ONE SPACE: vsplitedtext[1] = $vsplitedtext[1]; ");
                        print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");[/B]
                                    }
                        # в этом сравнении шаблон включает ЧЕТЫРЕ пробелА между запятой и цифрой и может работать для первой цифры от 0 до 99
                        
                                    if ($vSplitedText[1]=~ m/[0-9]+,    [0-9]/){
                                        @vDiskState=split(' ',$vSplitedText[2]);
                                        $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                        [B]print("FOUR SPACES: vsplitedtext[1] = $vsplitedtext[1]; ");
                        print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");[/B]
                                    }
                        
                                }
                        Sincerely yours,
                        Aleksey

                        Comment

                        • anisimov_evgeniy
                          Member
                          • Jul 2014
                          • 37

                          #13
                          Originally posted by aib
                          Прошу прощения, забыл включить отладку внутрь второй проверки
                          Code:
                                  if ($vPart eq 'BASIC'){
                                      @vDiskState=();
                          [B]print("vSplitedText[1] = $vSplitedText[1]\n");
                          print("vSplitedText[2] = $vSplitedText[2]\n\n");
                          [/B]
                          # в этом сравнении шаблон включает ОДИН пробел между запятой и цифрой
                                      if ($vSplitedText[1]=~ m/[0-9], [0-9]/){
                                          @vDiskState=split(' ',$vSplitedText[2]);
                                          $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                          [B]print("ONE SPACE: vsplitedtext[1] = $vsplitedtext[1]; ");
                          print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");[/B]
                                      }
                          # в этом сравнении шаблон включает ЧЕТЫРЕ пробелА между запятой и цифрой и может работать для первой цифры от 0 до 99
                          
                                      if ($vSplitedText[1]=~ m/[0-9]+,    [0-9]/){
                                          @vDiskState=split(' ',$vSplitedText[2]);
                                          $vDisk_states{$vSplitedText[1]}=$vDiskState[0];
                          [B]print("FOUR SPACES: vsplitedtext[1] = $vsplitedtext[1]; ");
                          print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");[/B]
                                      }
                          
                                  }
                          Code:
                          root@mn2:/etc/zabbix/scripts# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1
                          vSplitedText[1] =
                          vSplitedText[2] =
                          
                          vSplitedText[1] =
                          vSplitedText[2] =
                          
                          vSplitedText[1] = ENCLOSURE, SLOT  STATUS   CAPACITY
                          vSplitedText[2] = MEDIA TYPE
                          
                          vSplitedText[1] = 0,    1
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    2
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    3
                          vSplitedText[2] =     Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    4
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    5
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    6
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    7
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    8
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    9
                          vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    10
                          vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    11
                          vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 0,    12
                          vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    1
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    2
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    3
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    4
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    5
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    6
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    7
                          vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    8
                          vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    9
                          vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    10
                          vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    11
                          vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] = 99,    12
                          vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                          
                          FOUR SPACES: vsplitedtext[1] = ; vdisk_states     =
                          vSplitedText[1] =
                          vSplitedText[2] =

                          Comment

                          • aib
                            Senior Member
                            • Jan 2014
                            • 1615

                            #14
                            Проше прощения, что ввел вас в заблуждение.
                            Хочу напомнить, что наименования переменных в отладочном выводе должны быть абсолютно такими-же, как в тексте. Включая БОЛЬШИЕ и маленькие буквы и их порядок.
                            Так что вместо
                            Code:
                            print("FOUR SPACES: vsplitedtext[1] = $vsplitedtext[1]; ");
                            print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");
                            надо было написать (для второго цикла)
                            Code:
                            print("FOUR SPACES: vSplitedText[1] = $vSplitedText[1]; ");
                            print("vdisk_states     = $vDisk_states{$vSplitedText[1]}\n");
                            Ну и для первого - точно так-же.

                            Если вас не затруднит, исправьте скрипт и прогоните вновь.
                            Sincerely yours,
                            Aleksey

                            Comment

                            • anisimov_evgeniy
                              Member
                              • Jul 2014
                              • 37

                              #15
                              Originally posted by aib
                              Проше прощения, что ввел вас в заблуждение.
                              Хочу напомнить, что наименования переменных в отладочном выводе должны быть абсолютно такими-же, как в тексте. Включая БОЛЬШИЕ и маленькие буквы и их порядок.
                              Так что вместо
                              Code:
                              print("FOUR SPACES: vsplitedtext[1] = $vsplitedtext[1]; ");
                              print("vdisk_states     = $vdisk_states{$vsplitedtext[1]}\n");
                              надо было написать (для второго цикла)
                              Code:
                              print("FOUR SPACES: vSplitedText[1] = $vSplitedText[1]; ");
                              print("vdisk_states     = $vDisk_states{$vSplitedText[1]}\n");
                              Ну и для первого - точно так-же.

                              Если вас не затруднит, исправьте скрипт и прогоните вновь.
                              Code:
                              root@mn2:~# /etc/zabbix/scripts/DS4700.Drive.state.pl -EnclosureID 0 -DiskID 1
                              vSplitedText[1] =
                              vSplitedText[2] =
                              
                              vSplitedText[1] =
                              vSplitedText[2] =
                              
                              vSplitedText[1] = ENCLOSURE, SLOT  STATUS   CAPACITY
                              vSplitedText[2] = MEDIA TYPE
                              
                              vSplitedText[1] = 0,    1
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    1; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    2
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    2; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    3
                              vSplitedText[2] =     Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    3; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    4
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    4; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    5
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    5; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    6
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    6; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    7
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    7; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    8
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    8; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    9
                              vSplitedText[2] =     Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    9; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    10
                              vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    10; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    11
                              vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    11; vdisk_states     = Optimal
                              vSplitedText[1] = 0,    12
                              vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 0,    12; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    1
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    1; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    2
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    2; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    3
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    3; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    4
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    4; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    5
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    5; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    6
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    6; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    7
                              vSplitedText[2] =    Optimal  1,863.016 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    7; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    8
                              vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    8; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    9
                              vSplitedText[2] =    Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    9; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    10
                              vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    10; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    11
                              vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    11; vdisk_states     = Optimal
                              vSplitedText[1] = 99,    12
                              vSplitedText[2] =   Optimal  2,794.519 GB  Hard Disk Drive  SAS
                              
                              FOUR SPACES: vSplitedText[1] = 99,    12; vdisk_states     = Optimal
                              vSplitedText[1] =
                              vSplitedText[2] =
                              
                              -2root@mn2:~#

                              Comment

                              Working...