Ad Widget

Collapse

Не работает awk в UserParameter

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Mak Sim
    Junior Member
    • Mar 2012
    • 14

    #1

    Не работает awk в UserParameter

    Возникла необходимость мониторить размеры папки. Создал вот такой UserParameter:
    Code:
    UserParameter=usr.mysql.size,du -s /var/lib/mysql | awk '{print $$1}'
    Но он стабильно возвращает [m|ZBX_NOTSUPPORTED], что странно так как ровно эта же команда (ну за вычетом экранирующего "$") запущенная в консоли возвращает корректное значение.

    Не подскажете в чём может быть дело?

    Самое странное, что на другом хосте в куда как более сложном параметре
    Code:
    UserParameter=usr.iostat.rs[*],iostat -d -x $1 1 2 | grep $1 | tail -n 1 | awk '{print $$4}'
    всё работает хорошо.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Полные пути до утилит напишите.
    пример:
    UserParameter=usr.mysql.size,/usr/bin/du -s /var/lib/mysql | /bin/awk '{print $$1}'
    Проверьте, что хватает прав выполнить команду под пользователем zabbix.

    Comment

    • Mak Sim
      Junior Member
      • Mar 2012
      • 14

      #3
      Originally posted by dima_dm
      Полные пути до утилит напишите.
      Прописал. Это ничего не меняет. И опять таки на другом хосте всё работает без полных путей.

      Originally posted by dima_dm
      Проверьте, что хватает прав выполнить команду под пользователем zabbix.
      Zabbix-агент выполняется вообще от рута (иначе я не смогу собирать некоторые айтемы в случае нашей параноидальной настройки прав).

      Что странно... если заменить $$1 на скажем $$5 то он вернёт ответ. Не верный (собственно говоря так как будто не сработал awk но вернёт:
      Code:
      usr.mysql.size                                [t|6019116	/var/lib/mysql]
      А вот $$1 пишет, что не поддерживается.

      Comment

      • Mak Sim
        Junior Member
        • Mar 2012
        • 14

        #4
        Проблема решилась весьма странным образом. Изменил userparameter на ровно такой же но с переменной и он заработал:
        Code:
        UserParameter=usr.mysql.size[*],/usr/bin/du -s $1 | /bin/awk '{print $$1}'
        Мистика

        Comment

        Working...