Ad Widget

Collapse

Ошибка UserParameter (awk внутри)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • flycat
    Member
    • May 2007
    • 30

    #1

    Ошибка UserParameter (awk внутри)

    Сделал такой параметр:
    PHP Code:
    UserParameter=bigfiles[*],lsof -X 2>/dev/null |awk -v c=$'{n=n+1;if(n>1)if($7>c)print $9}' |sort -|wc -
    при проверке агент в лог ругается:
    PHP Code:
    awk: {n=n+1;if(n>1)if(>c)print }
    awk:                  ^ syntax error 
    то есть при передачи от агента к awk теряются $7 $9 (скорее всего, заменяется на их значение, которое пустое). Экранировка типа \$7 не помогает.
    Как это можно исправить?
  • costas
    Senior Member
    • Aug 2009
    • 201

    #2
    Originally posted by flycat
    Сделал такой параметр:
    PHP Code:
    UserParameter=bigfiles[*],lsof -X 2>/dev/null |awk -v c=$'{n=n+1;if(n>1)if($7>c)print $9}' |sort -|wc -
    при проверке агент в лог ругается:
    PHP Code:
    awk: {n=n+1;if(n>1)if(>c)print }
    awk:                  ^ syntax error 
    то есть при передачи от агента к awk теряются $7 $9 (скорее всего, заменяется на их значение, которое пустое). Экранировка типа \$7 не помогает.
    Как это можно исправить?
    Если мне не изменяет память, то экранирование идёт по схеме
    PHP Code:
    UserParameter=bigfiles[*],lsof -X 2>/dev/null |awk -v c=$'{n=n+1;if(n>1)if($$7>c)print $$9}' |sort -|wc -
    CentOS-5.5 i386, Zabbix 1.8.4 (stable), MySQL 5.0.92, PHP 5.2.17 (cli)

    ...эта проверка бесполезная, вредная, и она зло.

    Comment

    • costas
      Senior Member
      • Aug 2009
      • 201

      #3
      Либо используется пробел:
      $7 заменить на
      $ 7

      CentOS-5.5 i386, Zabbix 1.8.4 (stable), MySQL 5.0.92, PHP 5.2.17 (cli)

      ...эта проверка бесполезная, вредная, и она зло.

      Comment

      • Hamer13
        Junior Member
        • Oct 2009
        • 28

        #4
        äëÿ awk ñèìâîë äîëëàðà íóæíî ïèñàòü äâàæäû.
        òèïà òàêîãî:
        Code:
        UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk 'BEGIN {FS=" "} {print $$12}'

        Comment

        • flycat
          Member
          • May 2007
          • 30

          #5
          Всем большое спасибо, выручили!

          Comment

          Working...