Ad Widget

Collapse

Возврат кавычек в system.run

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • soldatov
    Junior Member
    • Dec 2016
    • 3

    #1

    Возврат кавычек в system.run

    Подскажите, как написать элемент, чтобы текст возвращался с кавычками?

    Для примера:
    не возвращает кавычки
    Code:
    zabbix_agentd -t system.run["echo \"quotes\""]
    system.run[echo "quotes"]                     [t|quotes]
    кавычки возвращаются
    Code:
    zabbix_agentd -t system.run["echo \\\"quotes\\\""]
    system.run[echo \"quotes\"]                   [t|"quotes"]
    Создаю элемент данных
    Имя: _quotes
    Тип: Zabbix agent
    Ключ: system.run["echo \\\"quotes\\\""]
    Тип информации: Текст

    Пробую получить значение через zabbix_get, кавычки есть
    Code:
    zabbix_get -s localhost -p 10050 -k system.run["echo \\\"quotes\\\""]
    "quotes"
    В последних данных по элементу вижу значение без кавычек:
    Code:
    Имя          Последняя проверка	Последнее значение
    _quotes	16.02.2017 10:05:43	\quotes\
    Включил debug Zabbix сервера, вижу, что возвращаемое значение без кавычек:
    Code:
    21678:20170216:100543.762 get value from agent result: '\quotes\'
    Стоит на Ubuntu, верcия Zabbix:
    zabbix-agent 1:3.2.3-1+xenial
    zabbix-get 1:3.2.3-1+xenial
    zabbix-release 3.2-1+xenial

    Спасибо
  • soldatov
    Junior Member
    • Dec 2016
    • 3

    #2
    Вопрос закрыт, правильный вариант
    Code:
    zabbix_agentd -t system.run["echo \\"\"quotes\\"\""]
    Ответ найден тут https://support.zabbix.com/browse/ZBX-11245

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #3
      Так тоже возвращает с кавычками:
      Code:
      zabbix_agentd -t 'system.run["echo \\"quotes\\""]'
      system.run["echo \\"quotes\\""]               [t|"quotes"]
      Просто кавычки обрабатываются (и убираются) ещё и тем шеллом, в котором запускается сама команда zabbix_agentd, от которого их надо экранировать.

      И даже так тоже работает:
      Code:
      zabbix_agentd -t 'system.run[echo \"quotes\"]'
      system.run[echo \"quotes\"]                   [t|"quotes"]
      Это, пожалуй, самый простой вариант (если внутри квадратных скобок нет запятых и другой закрывающей квадратной скобки).
      Last edited by Kos; 16-02-2017, 11:32.

      Comment

      Working...