Ad Widget

Collapse

Создание триггера на проверку даты.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jean3
    Junior Member
    • Nov 2016
    • 18

    #1

    Создание триггера на проверку даты.

    Добрый день.
    В агенте создан пользовательский параметр, который парсит web-страницу и возвращает текст формата yyyy-mm-dd.(парсинг даты)
    Была мысль преобразовать его в кол-во секунд по типу: date +%s -d "userparameter", но не знаю возможно ли это сделать и где именно? В конфигурации агента не проходит.

    Или может быть есть возможность сразу в Заббиксе создать триггер на проверку разницы этой даты с сегодняшней датой? Нужно знать насколько даты различаются и допустим если разница более 30 дней, чтобы срабатывал триггер.
    Last edited by Jean3; 25-11-2016, 11:05.
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by jean3
    Добрый день.
    В агенте создан пользовательский параметр, который парсит web-страницу и возвращает текст формата yyyy-mm-dd.(парсинг даты)
    ...
    Нужно знать насколько даты различаются и допустим если разница более 30 дней, чтобы срабатывал триггер.
    Раз скрипт уже есть, то отчего бы не дополнить его функцией вычисления разницы между текущей датой и сформированной после обработки? Тогда будете анализировать количество дней, как обычное число.

    Comment

    • Jean3
      Junior Member
      • Nov 2016
      • 18

      #3
      Originally posted by sadman
      Раз скрипт уже есть, то отчего бы не дополнить его функцией вычисления разницы между текущей датой и сформированной после обработки? Тогда будете анализировать количество дней, как обычное число.
      В том то и дело скрипта нет, есть только в конфиге строка типа:
      Code:
      UserParameter=datecert, usr/bin/curl -s http://X.X.X.X:8080 | grep '****' | awk -F"****" '{print substr($2,0,11)}'
      , которая забирает со страницы нужную дату. Думал обойтись без использования внешнего скрипта, но как я понял преобразовать тут же в конфиге заббикса эту дату в секунды напрямую нельзя?

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by Jean3
        Думал обойтись без использования внешнего скрипта, но как я понял преобразовать тут же в конфиге заббикса эту дату в секунды напрямую нельзя?
        Code:
        $date +%s -d `echo "1970-10-01"`
        23576400
        Вместо echo, полагаю, можно вкрячить ваш "парсер".

        Comment

        • Jean3
          Junior Member
          • Nov 2016
          • 18

          #5
          Originally posted by sadman
          Code:
          $date +%s -d `echo "1970-10-01"`
          23576400
          Вместо echo, полагаю, можно вкрячить ваш "парсер".
          Или он не понимает он такую конструкцию, или я не правильно ее составляю
          Code:
          UserParameter=datecert, $date +%s -d 'usr/bin/curl -s http://X.X.X.X:8080 | grep '****' | awk -F"****" '{print substr($2,0,11)}''
          выдает: unexpected "(".

          Comment

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

            #6
            Originally posted by Jean3
            Или он не понимает он такую конструкцию, или я не правильно ее составляю
            Code:
            UserParameter=datecert, $date +%s -d 'usr/bin/curl -s http://X.X.X.X:8080 | grep '****' | awk -F"****" '{print substr($2,0,11)}''
            выдает: unexpected "(".
            Видимо, неправильно.
            Что за знак доллара перед командой date?
            Что за множество непарных апострофов? Подозреваю, что где-то вместо них подразумевались обратные апострофы.

            Comment

            • sadman
              Senior Member
              • Dec 2010
              • 1611

              #7
              Originally posted by Kos
              Что за знак доллара перед командой date?
              Мой недосмотр. С консоли скопировал вместе с частью prompt.

              Остальное всё так - обратные апострофы незамечены.

              Comment

              • Jean3
                Junior Member
                • Nov 2016
                • 18

                #8
                Originally posted by kos
                Видимо, неправильно.
                Что за знак доллара перед командой date?
                Что за множество непарных апострофов? Подозреваю, что где-то вместо них подразумевались обратные апострофы.
                Без знака $ та же самая ошибка, ругается на скобку "(" почему-то.

                Comment

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

                  #9
                  Originally posted by Jean3
                  Без знака $ та же самая ошибка, ругается на скобку "(" почему-то.
                  Вроде бы, я не такое длинное сообщение написал. Почему Вы его не дочитали? На всякий случай, повторяю:
                  Что за множество непарных апострофов? Подозреваю, что где-то вместо них подразумевались обратные апострофы.
                  Прозрачно намекаю: в команде date из примера, который давал sadman, используются обратные апострофы.

                  Comment

                  • Jean3
                    Junior Member
                    • Nov 2016
                    • 18

                    #10
                    Действительно дело было в апострофах. Навыков программирования в shellscript и ему подобных нет, посему не подумал, что между этими апострофами есть разница. Спасибо!

                    Comment

                    Working...