Ad Widget

Collapse

Преобразование значения (Value Mapping).

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #16
    значит добавляй дебаг в скрипты.
    Если перловый скрипт возвращает NULL, то значит $result не определен, а это значит что не отрабатывает snmpget

    после if сделай else и добавь print $result."\n";
    Last edited by dotneft; 19-11-2009, 17:44.

    Comment

    • swq
      Member
      • Sep 2009
      • 84

      #17
      Originally posted by dotneft
      значит добавляй дебаг в скрипты.
      Если перловый скрипт возвращает NULL, то значит $result не определен, а это значит что не отрабатывает snmpget

      после if сделай else и добавь print $result."\n";
      с консоли все работает, что под рутом, что под забиксом> На консоль выводятся правильные значения.

      Теперь вопрос:
      Первый вариант:
      #!/bin/sh
      x=$(/usr/bin/snmpget -c public -v 2c $1 $2 | awk -F: '{print $4}')
      if [ "$x" = " 01 37 54 56 " ] ; then
      y="7 TV"
      fi
      echo $y
      -вот так серверу возвращается пустое значение, при запуске с консоли результат - 7 TV
      В этом случае скрипт отдает подмененное значение

      #!/bin/sh
      x=$(/usr/bin/snmpget -c public -v 2c $1 $2 | awk -F: '{print $4}')
      if [ "$x" = " 01 37 54 56 " ] ; then
      y="7 TV"
      fi
      echo "7 TV"
      -вот так серверу возвращается значение 7 TV (естественно)
      в этом случае скрипт в тупую отдает значение 7 TV
      В чем же отличие? И там и там echo отдает одинаковые значения, но сервер принимает только второй вариант

      Comment

      • Hamer13
        Junior Member
        • Oct 2009
        • 28

        #18
        à íàïèøè â êîíöå íå "echo $y", à "echo $x".
        ñòîïóäîâà - ïåðåìåííàÿ "x" íå çàïîëíÿåòñÿ. çàîäíî âðåìåííî óáåðè awk, îñòàâü òîëüêî ãîëûé snmpget.
        è ïîêàæè ÷òî çàïèñàëîñü â ôàéë /tmp/set.txt ïðè çàïóñêå ñêðèïòà ñàìèì çàááèêñîì.

        Comment

        • swq
          Member
          • Sep 2009
          • 84

          #19
          Originally posted by Hamer13
          à íàïèøè â êîíöå íå "echo $y", à "echo $x".
          ñòîïóäîâà - ïåðåìåííàÿ "x" íå çàïîëíÿåòñÿ. çàîäíî âðåìåííî óáåðè awk, îñòàâü òîëüêî ãîëûé snmpget.
          è ïîêàæè ÷òî çàïèñàëîñü â ôàéë /tmp/set.txt ïðè çàïóñêå ñêðèïòà ñàìèì çàááèêñîì.
          ñêðèïò:
          #!/bin/sh
          set > /tmp/set.txt
          x=$(sudo /usr/bin/snmpget -c public -v 2c $1 $2 )
          if [ "$x" = " 01 37 54 56 " ] ; then
          y="7 TV"
          fi
          echo $x

          íà êîíñîëå:
          zabbix@StatMMS:~/bin$ ./ivg7000c.sh 192.168.100.22 .1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.6105 99176.100
          SNMPv2-SMI::enterprises.4466.3.2.5.1.9.610338304.310.410. 610599176.100 = Hex-STRING: 01 37 54 56
          zabbix@StatMMS:~/bin$

          set.txt:
          zabbix@StatMMS:~/bin$ cat /tmp/set.txt
          HISTCONTROL='ignoreboth'
          HOME='/home/zabbix'
          IFS='
          '
          LANG='ru_RU.UTF-8'
          LESSCLOSE='/usr/bin/lesspipe %s %s'
          LESSOPEN='| /usr/bin/lesspipe %s'
          LOGNAME='zabbix'
          LS_COLORS='no=00:fi=00:di=01;34:ln=01;36i=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01r=40;31;01:su=37;41:sg=30;43:tw=30;42w=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31: *.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:* .lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=0 1;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;3 1:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:* .rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*. 7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif =01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=0 1;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01; 35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;3 5:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35 :*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:* .m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.n uv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb =01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01 ;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35 :*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:* .midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*. ogg=00;36:*.ra=00;36:*.wav=00;36:'
          MAIL='/var/mail/zabbix'
          OLDPWD='/home/zabbix'
          OPTIND='1'
          PATH='/home/zabbix/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
          PPID='458'
          PS1='$ '
          PS2='> '
          PS4='+ '
          PWD='/home/zabbix/bin'
          SHELL='/bin/bash'
          SHLVL='1'
          SSH_CLIENT='10.250.0.7 1608 22'
          SSH_CONNECTION='10.250.0.7 1608 85.172.56.62 22'
          SSH_TTY='/dev/pts/2'
          TERM='xterm'
          USER='zabbix'
          XDG_SESSION_COOKIE='f2f6388ace78879a8c0dacb44ab11f 79-1258647659.158021-173236315'
          _='./ivg7000c.sh'
          zabbix@StatMMS:~/bin$

          Comment

          • Hamer13
            Junior Member
            • Oct 2009
            • 28

            #20
            ïîïðîáóé â ñêðèïòå â íà÷àëå äîáàâèòü ïðèñâîåíèå ïåðåìåííûõ:
            Code:
            #!/bin/sh
            x_1=$1
            x_2=$2
            x_3=$3
            set > /tmp/set.txt
            è â êîíöå ñêðèïòà äîáàâü
            Code:
            echo "-----------------" >> /tmp/set.txt
            set >> /tmp/set.txt
            äëÿ òîãî ÷òîáû âèäåòü ÷òî åìó ïåðåäàëîñü è ÷òî îí íàäåëàë â ïðîöåññå ðàáîòû.

            ñîòðè /tmp/set.txt è ïåðåçàïóñòè ýëåìåíò.
            ïðîñòî åñëè ýëåìåíò íàñòðîåí òàê:
            test.sh [192.168.100.22 1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.61059 9176.100]
            òî ïåðâûì ïàðàìåòðîì ñêðèïòó ïåðåäàñòñÿ IP óçëà, à òå ÷òî íàì íóæíû áóäóò $2 è $3.

            Comment

            • Hamer13
              Junior Member
              • Oct 2009
              • 28

              #21
              вот мой тестовый скрипт:
              Code:
              #!/bin/sh
              x_1=$1
              x_2=$2
              x_3=$3
              set > /tmp/set.txt
              
              x=$(/usr/bin/snmpget -c public -v 2c $x_2 $x_3 2>/dev/null | awk -F: '{print $4}' | tr -d " ")
              echo $x
              
              echo "-----------------" >> /tmp/set.txt
              set >> /tmp/set.txt
              вот элемент:
              Code:
              test1.sh[192.168.13.1 .1.3.6.1.2.1.2.2.1.10.15]
              работает правильно, то есть возвращает число (количество байт прошедших через интерфейс).

              ах да, и кусок /tmp/set.txt
              Code:
              hamer@zabbix:~$ cat /tmp/set.txt 
              BASH=/bin/sh                     
              BASH_ARGC=([0]="3")              
              BASH_ARGV=([0]=".1.3.6.1.2.1.2.2.1.10.15" [1]="192.168.13.1" [2]="0.0.0.0")
              BASH_LINENO=([0]="0")                                                      
              BASH_SOURCE=([0]="/etc/zabbix/externalscripts/test1.sh")                   
              BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
              BASH_VERSION='3.2.39(1)-release'                                                        
              DIRSTACK=()                                                                             
              DISPLAY=localhost:10.0                                                                  
              EUID=104                                                                                
              GROUPS=()                                                                               
              HOME=/home/hamer                                                                        
              HOSTNAME=zabbix                                                                         
              HOSTTYPE=x86_64                                                                         
              IFS='                                                                                   
              '                                                                                       
              LANG=ru_RU.UTF-8                                                                        
              LOGNAME=root                                                                            
              MACHTYPE=x86_64-pc-linux-gnu                                                              
              MAIL=/var/mail/hamer                                                                      
              OPTERR=1                                                                                  
              OPTIND=1                                                                                  
              OSTYPE=linux-gnu                                                                          
              PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin                                                                                    
              PIPESTATUS=([0]="0")                                                                      
              POSIXLY_CORRECT=y                                                                         
              PPID=3103                                                                                 
              PS4='+ '                                                                                  
              PWD=/                                                                                     
              SHELL=/bin/bash                                                                           
              SHELLOPTS=braceexpand:hashall:interactive-comments:posix                                  
              SHLVL=4                                                                                   
              SUDO_COMMAND='/usr/sbin/invoke-rc.d zabbix-server start'                                  
              SUDO_GID=1000                                                                             
              SUDO_UID=1000                                                                             
              SUDO_USER=hamer                                                                           
              TERM=xterm                                                                                
              UID=104                                                                                   
              USER=root                                                                                 
              USERNAME=root                                                                             
              _=                                                                                        
              x_1=0.0.0.0                                                                               
              x_2=192.168.13.1                                                                          
              x_3=.1.3.6.1.2.1.2.2.1.10.15                                                              
              -----------------                                                                         
              BASH=/bin/sh                                                                              
              BASH_ARGC=([0]="3")                                                                       
              BASH_ARGV=([0]=".1.3.6.1.2.1.2.2.1.10.15" [1]="192.168.13.1" [2]="0.0.0.0")               
              BASH_LINENO=([0]="0")                                                                     
              BASH_SOURCE=([0]="/etc/zabbix/externalscripts/test1.sh")                                  
              BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")  
              BASH_VERSION='3.2.39(1)-release'                                                          
              DIRSTACK=()                                                                               
              DISPLAY=localhost:10.0                                                                    
              EUID=104                                                                                  
              GROUPS=()                                                                                 
              HOME=/home/hamer                                                                          
              HOSTNAME=zabbix                                                                           
              HOSTTYPE=x86_64                                                                           
              IFS='                                                                                     
              '                                                                                         
              LANG=ru_RU.UTF-8                                                                          
              LOGNAME=root                                                                              
              MACHTYPE=x86_64-pc-linux-gnu                                                              
              MAIL=/var/mail/hamer                                                                      
              OPTERR=1                                                                                  
              OPTIND=1                                                                                  
              OSTYPE=linux-gnu                                                                          
              PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin
              PIPESTATUS=([0]="0")
              POSIXLY_CORRECT=y
              PPID=3103
              PS4='+ '
              PWD=/
              SHELL=/bin/bash
              SHELLOPTS=braceexpand:hashall:interactive-comments:posix
              SHLVL=4
              SUDO_COMMAND='/usr/sbin/invoke-rc.d zabbix-server start'
              SUDO_GID=1000
              SUDO_UID=1000
              SUDO_USER=hamer
              TERM=xterm
              UID=104
              USER=root
              USERNAME=root
              _=-----------------
              x=651841974
              x_1=0.0.0.0
              x_2=192.168.13.1
              x_3=.1.3.6.1.2.1.2.2.1.10.15
              Last edited by Hamer13; 19-11-2009, 19:07.

              Comment

              • swq
                Member
                • Sep 2009
                • 84

                #22
                Originally posted by Hamer13
                вот мой тестовый скрипт:
                Code:
                #!/bin/sh
                x_1=$1
                x_2=$2
                x_3=$3
                set > /tmp/set.txt
                
                x=$(/usr/bin/snmpget -c public -v 2c $x_2 $x_3 2>/dev/null | awk -F: '{print $4}' | tr -d " ")
                echo $x
                
                echo "-----------------" >> /tmp/set.txt
                set >> /tmp/set.txt
                вот элемент:
                Code:
                test1.sh[192.168.13.1 .1.3.6.1.2.1.2.2.1.10.15]
                работает правильно, то есть возвращает число (количество байт прошедших через интерфейс).

                ах да, и кусок /tmp/set.txt
                Code:
                hamer@zabbix:~$ cat /tmp/set.txt 
                BASH=/bin/sh                     
                BASH_ARGC=([0]="3")              
                BASH_ARGV=([0]=".1.3.6.1.2.1.2.2.1.10.15" [1]="192.168.13.1" [2]="0.0.0.0")
                BASH_LINENO=([0]="0")                                                      
                BASH_SOURCE=([0]="/etc/zabbix/externalscripts/test1.sh")                   
                BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
                BASH_VERSION='3.2.39(1)-release'                                                        
                DIRSTACK=()                                                                             
                DISPLAY=localhost:10.0                                                                  
                EUID=104                                                                                
                GROUPS=()                                                                               
                HOME=/home/hamer                                                                        
                HOSTNAME=zabbix                                                                         
                HOSTTYPE=x86_64                                                                         
                IFS='                                                                                   
                '                                                                                       
                LANG=ru_RU.UTF-8                                                                        
                LOGNAME=root                                                                            
                MACHTYPE=x86_64-pc-linux-gnu                                                              
                MAIL=/var/mail/hamer                                                                      
                OPTERR=1                                                                                  
                OPTIND=1                                                                                  
                OSTYPE=linux-gnu                                                                          
                PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin                                                                                    
                PIPESTATUS=([0]="0")                                                                      
                POSIXLY_CORRECT=y                                                                         
                PPID=3103                                                                                 
                PS4='+ '                                                                                  
                PWD=/                                                                                     
                SHELL=/bin/bash                                                                           
                SHELLOPTS=braceexpand:hashall:interactive-comments:posix                                  
                SHLVL=4                                                                                   
                SUDO_COMMAND='/usr/sbin/invoke-rc.d zabbix-server start'                                  
                SUDO_GID=1000                                                                             
                SUDO_UID=1000                                                                             
                SUDO_USER=hamer                                                                           
                TERM=xterm                                                                                
                UID=104                                                                                   
                USER=root                                                                                 
                USERNAME=root                                                                             
                _=                                                                                        
                x_1=0.0.0.0                                                                               
                x_2=192.168.13.1                                                                          
                x_3=.1.3.6.1.2.1.2.2.1.10.15                                                              
                -----------------                                                                         
                BASH=/bin/sh                                                                              
                BASH_ARGC=([0]="3")                                                                       
                BASH_ARGV=([0]=".1.3.6.1.2.1.2.2.1.10.15" [1]="192.168.13.1" [2]="0.0.0.0")               
                BASH_LINENO=([0]="0")                                                                     
                BASH_SOURCE=([0]="/etc/zabbix/externalscripts/test1.sh")                                  
                BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")  
                BASH_VERSION='3.2.39(1)-release'                                                          
                DIRSTACK=()                                                                               
                DISPLAY=localhost:10.0                                                                    
                EUID=104                                                                                  
                GROUPS=()                                                                                 
                HOME=/home/hamer                                                                          
                HOSTNAME=zabbix                                                                           
                HOSTTYPE=x86_64                                                                           
                IFS='                                                                                     
                '                                                                                         
                LANG=ru_RU.UTF-8                                                                          
                LOGNAME=root                                                                              
                MACHTYPE=x86_64-pc-linux-gnu                                                              
                MAIL=/var/mail/hamer                                                                      
                OPTERR=1                                                                                  
                OPTIND=1                                                                                  
                OSTYPE=linux-gnu                                                                          
                PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/sbin:/sbin
                PIPESTATUS=([0]="0")
                POSIXLY_CORRECT=y
                PPID=3103
                PS4='+ '
                PWD=/
                SHELL=/bin/bash
                SHELLOPTS=braceexpand:hashall:interactive-comments:posix
                SHLVL=4
                SUDO_COMMAND='/usr/sbin/invoke-rc.d zabbix-server start'
                SUDO_GID=1000
                SUDO_UID=1000
                SUDO_USER=hamer
                TERM=xterm
                UID=104
                USER=root
                USERNAME=root
                _=-----------------
                x=651841974
                x_1=0.0.0.0
                x_2=192.168.13.1
                x_3=.1.3.6.1.2.1.2.2.1.10.15



                Мой set.txt

                zabbix@StatMMS:~/bin$ cat ./set.txt
                BASH=/bin/bash
                BASH_ARGC=([0]="3")
                BASH_ARGV=([0]=".1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.61 0599176.100" [1]="192.168.100.22" [2]="192.168.100.22")
                BASH_LINENO=([0]="0")
                BASH_SOURCE=([0]="/home/zabbix/bin/ivg7000c.sh")
                BASH_VERSINFO=([0]="3" [1]="2" [2]="48" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
                BASH_VERSION='3.2.48(1)-release'
                DIRSTACK=()
                EUID=1001
                GROUPS=()
                HISTCONTROL=ignorespace
                HOME=/root
                HOSTNAME=StatMMS
                HOSTTYPE=x86_64
                IFS=$' \t\n'
                LANG=ru_RU.UTF-8
                LESSCLOSE='/usr/bin/lesspipe %s %s'
                LESSOPEN='| /usr/bin/lesspipe %s'
                MACHTYPE=x86_64-pc-linux-gnu
                MAIL=/var/mail/root
                MC_SID=11023
                MC_TMPDIR=/tmp/mc-root
                OPTERR=1
                OPTIND=1
                OSTYPE=linux-gnu
                PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
                PIPESTATUS=([0]="0")
                PPID=14279
                PS4='+ '
                PWD=/
                SHELL=/bin/bash
                SHELLOPTS=braceexpand:hashall:interactive-comments
                SHLVL=3
                XDG_SESSION_COOKIE=f2f6388ace78879a8c0dacb44ab11f7 9-1258613929.63959-864545870
                _=
                x_1=192.168.100.22
                x_2=192.168.100.22
                x_3=.1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410. 610599176.100
                ---------------
                BASH=/bin/bash
                BASH_ARGC=([0]="3")
                BASH_ARGV=([0]=".1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.61 0599176.100" [1]="192.168.100.22" [2]="192.168.100.22")
                BASH_LINENO=([0]="0")
                BASH_SOURCE=([0]="/home/zabbix/bin/ivg7000c.sh")
                BASH_VERSINFO=([0]="3" [1]="2" [2]="48" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
                BASH_VERSION='3.2.48(1)-release'
                DIRSTACK=()
                EUID=1001
                GROUPS=()
                HISTCONTROL=ignorespace
                HOME=/root
                HOSTNAME=StatMMS
                HOSTTYPE=x86_64
                IFS=$' \t\n'
                LANG=ru_RU.UTF-8
                LESSCLOSE='/usr/bin/lesspipe %s %s'
                LESSOPEN='| /usr/bin/lesspipe %s'
                MACHTYPE=x86_64-pc-linux-gnu
                MAIL=/var/mail/root
                MC_SID=11023
                MC_TMPDIR=/tmp/mc-root
                OPTERR=1
                OPTIND=1
                OSTYPE=linux-gnu
                PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
                PIPESTATUS=([0]="0")
                PPID=14279
                PS4='+ '
                PWD=/
                SHELL=/bin/bash
                SHELLOPTS=braceexpand:hashall:interactive-comments
                SHLVL=3
                XDG_SESSION_COOKIE=f2f6388ace78879a8c0dacb44ab11f7 9-1258613929.63959-864545870
                _=---------------
                x=01375456
                x_1=192.168.100.22
                x_2=192.168.100.22
                x_3=.1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410. 610599176.100
                zabbix@StatMMS:~/bin$


                скрипт:

                #!/bin/sh

                x_1=$1
                x_2=$2
                x_3=$3

                set > /tmp/set.txt

                x=$(sudo /usr/bin/snmpget -c public -v 2c $x_2 $x_3 2>/dev/null | awk -F: '{print $4}' | tr -d " " )
                echo $x

                echo "---------------" >> /tmp/set.txt
                set >> /tmp/set.txt
                zabbix@StatMMS:/tmp$

                ключ вызова: ivg7000c.sh [192.168.100.22 .1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.6105 99176.100]
                в OID почему-то пробел появляется
                .1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.6105 99176.100

                правильно так 610599176.100
                Last edited by swq; 19-11-2009, 19:54.

                Comment

                • Hamer13
                  Junior Member
                  • Oct 2009
                  • 28

                  #23
                  пробел, возможно, при копи-пасте появляется.
                  вот самое главное:
                  до snmpget
                  Code:
                  x_1=192.168.100.22
                  x_2=192.168.100.22
                  x_3=.1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410. 610599176.100
                  после snmpget
                  Code:
                  x=01375456
                  x_1=192.168.100.22
                  x_2=192.168.100.22
                  x_3=.1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410.610599176.100
                  переменная "x" заполнена нормально (x=01375456). то что пробелов нет - в моём скрипте они вырезаются.
                  теперь можешь переписать условия подстановки типа "01375456"->"7TV".

                  Comment

                  • Hamer13
                    Junior Member
                    • Oct 2009
                    • 28

                    #24
                    у меня в тесте у узла IP=0.0.0.0, поэтому я нужный IP указал в самом элементе и у меня параметры для snmpget такие "$x_2 $x_3", то есть первый параметр, который подставляет заббикс самостоятельно ("$x_1") я игнорирую. если в твоём узле IP задан то можно из элемента его выкинуть и в скрипте "$x_2 $x_3" заменить на "$x_1 $x_2".

                    Comment

                    • swq
                      Member
                      • Sep 2009
                      • 84

                      #25
                      И таки заработало! БИГ-БИГ зенкс!

                      Окончательная версия скрипта:

                      #!/bin/bash
                      x_1=$1
                      x_2=$2
                      x_3=$3

                      x=$(sudo /usr/bin/snmpget -c public -v 2c $x_2 $x_3 2>/dev/null | awk -F: '{print $4}' | tr -d " " )
                      if [ "$x" = "01375456" ]; then
                      y="7 TV"
                      fi
                      echo $y

                      SETы я убрал, sudo и полный путьскорее всего тоже можно убрать

                      1. только я не понял, где была ошибка?
                      2. а как заставить работать перловый скрипт?

                      в доке сказано, что бы внешней проверкой не увлекались, падает производительность сервера. как много можно делать проверок и как часто без ущерба в работе?

                      попробовал по старому, с пробелами - тоже работает:
                      #!/bin/bash
                      x_1=$1
                      x_2=$2
                      x_3=$3

                      x=$(sudo /usr/bin/snmpget -c public -v 2c $x_2 $x_3 2>/dev/null | awk -F: '{print $4}' )
                      if [ "$x" = " 01 37 54 56 " ]; then
                      y="7 TV"
                      fi
                      echo $y

                      Ошибка в скрипте была тут -> snmpget -c public -v 2c $1 $2
                      а правильно так -> snmpget -c public -v 2c $2 $3
                      Last edited by swq; 19-11-2009, 21:00.

                      Comment

                      • Hamer13
                        Junior Member
                        • Oct 2009
                        • 28

                        #26
                        äà, sudo è ïîëíûé ïóòü ìîæíî óáðàòü.
                        íå ðàáîòàëî ñêîðåå âñåãî èç-çà òîãî ÷òî èñïîëüçîâàëèñü 1-é è 2-é ïàðàìåòðû, à ñåé÷àñ 2-é è 3-é.
                        åñëè ýëåìåíò òàêîé "test1.sh[192.168.13.1 .1.3.6.1.2.1.2.2.1.10.15]" òî íóæíî èñïîëüçîâàòü ïàðàìåòðû $2 è $3. à åñëè "test1.sh[.1.3.6.1.2.1.2.2.1.10.15]" òî $1 è $2.

                        ïî ïîâîäó ïåðëà:
                        åñëè IP óêàçàí â ïðàìåòðå åëåìåíòà òî ñêðèïò äîëæåí áûòü òàêîé:
                        Code:
                        #!/usr/bin/perl
                        #
                        #
                        #
                        shift;
                        my $ip = shift;
                        my $oid = shift;
                        my $community = shift;
                        my $print_str;
                        
                        if (! defined $community) {
                        $community = "public";
                        }
                        
                        my $hash = {
                        "01BADEDCD5D4D8EF20C2B2" => "Êîìåäèÿ TV",
                        "01375456" => "7 ÒÂ"
                        };
                        
                        my $result=`snmpget -c $community -v 2c $ip $oid | awk '{print \$4}' | tr -d " "`;
                        
                        if (defined $result ) {
                        chomp($result);
                        print $hash->{$result};
                        }
                        åñëè æå â ïàðàìåòðå ýëåìåíòà IP íåòó òî ïåðâûé "shift;" íóæíî óáðàòü.

                        Comment

                        • swq
                          Member
                          • Sep 2009
                          • 84

                          #27
                          Originally posted by Hamer13
                          äà, sudo è ïîëíûé ïóòü ìîæíî óáðàòü.
                          íå ðàáîòàëî ñêîðåå âñåãî èç-çà òîãî ÷òî èñïîëüçîâàëèñü 1-é è 2-é ïàðàìåòðû, à ñåé÷àñ 2-é è 3-é.
                          åñëè ýëåìåíò òàêîé "test1.sh[192.168.13.1 .1.3.6.1.2.1.2.2.1.10.15]" òî íóæíî èñïîëüçîâàòü ïàðàìåòðû $2 è $3. à åñëè "test1.sh[.1.3.6.1.2.1.2.2.1.10.15]" òî $1 è $2.

                          ïî ïîâîäó ïåðëà:
                          åñëè IP óêàçàí â ïðàìåòðå åëåìåíòà òî ñêðèïò äîëæåí áûòü òàêîé:
                          Code:
                          #!/usr/bin/perl
                          #
                          #
                          #
                          shift;
                          my $ip = shift;
                          my $oid = shift;
                          my $community = shift;
                          my $print_str;
                          
                          if (! defined $community) {
                          $community = "public";
                          }
                          
                          my $hash = {
                          "01BADEDCD5D4D8EF20C2B2" => "Êîìåäèÿ TV",
                          "01375456" => "7 ÒÂ"
                          };
                          
                          my $result=`snmpget -c $community -v 2c $ip $oid | awk '{print \$4}' | tr -d " "`;
                          
                          if (defined $result ) {
                          chomp($result);
                          print $hash->{$result};
                          }
                          åñëè æå â ïàðàìåòðå ýëåìåíòà IP íåòó òî ïåðâûé "shift;" íóæíî óáðàòü.
                          çàâòðà ïîïðîáóþ ïåðëîâûé ñêðèïò. ìíå íàäî ïåðåäàâàòü IP è OID, community íå íàäî. òóò hash êëàññíî ñìîòðèòñÿ, î÷åíü óäîáíî. ÿ íå áîëüøîé çíàòîê bash/perl, íî â áàøåâñêîì ñêðèïòå (ïî ìîåìó) áåç êó÷è if/then/else íå îáîéòèñü.

                          Comment

                          • Hamer13
                            Junior Member
                            • Oct 2009
                            • 28

                            #28
                            для community в скрипте есть затычка:
                            Code:
                            if (! defined $community) {
                            $community = "public";
                            }
                            то есть, если его не передать то используется "public".
                            Last edited by Hamer13; 20-11-2009, 13:38.

                            Comment

                            • dotneft
                              Senior Member
                              • Nov 2008
                              • 699

                              #29
                              ip по дефолу всегда передается первым аргументом!!

                              Code:
                              x_1=192.168.100.22
                              x_2=192.168.100.22
                              x_3=.1.3.6.1.4.1.4466.3.2.5.1.9.610338304.310.410. 610599176.100
                              даже тут можете увидеть, что 2 раза айпи прилетает хотя параметров всего 2 передается

                              кусок кода:
                              Code:
                              conn = item->host.useip == 1 ? item->host.ip : item->host.dns;
                                      zbx_snprintf(cmd, MAX_STRING_LEN-1, "%s/%s %s %s",
                                              CONFIG_EXTERNALSCRIPTS,
                                              scriptname,
                                              conn,
                                              params);
                              Last edited by dotneft; 19-11-2009, 21:25.

                              Comment

                              • Hamer13
                                Junior Member
                                • Oct 2009
                                • 28

                                #30
                                íó, à âäðóã ìû ñäåëàëè óçåë áåç ip? ñîãëàñåí, ëó÷øå äåëàòü óçåë ñ ðåàëüíûì ip è íå ïëîäèòü ñóùíîñòåé â ïàðàìåòðàõ ýëåìåíòîâ. ýòî ÿ ó ñåáÿ äîáàâèë òåñòîâûé ýëåìåíò ê ëåâîìó òåñòîâîìó óçëó, ÷òîáû êàðòèíêè íå ïîðòèòü. :-) ïîòîìó è óêàçàë ip â ïàðàìåòðàõ ñàìîãî ýëåìåíòà. òóò ãëàâíîå - ïðèíöèï ïîíèìàòü.

                                Comment

                                Working...