Ad Widget

Collapse

SSL sertificate monitoring

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Eugene2012
    Member
    • Apr 2020
    • 31

    #1

    SSL sertificate monitoring

    Ранее в Zabbix для мониторинга SSL сертификатов приходилось использовать консольный скрипт, который передает значения в Zabbix через UserParameter​.
    Знаю что сейчас есть плагин WebCertificate. Но для одного сервера надо поднять скриптовый вариант.

    #!/bin/bash

    data=`echo | openssl s_client -servername $1 -connect $1:${2:-443} 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`

    ssldate=`date -d "${data}" '+%s'`

    nowdate=`date '+%s'`

    diffdate="$((${ssldate}-${nowdate}))"

    echo $((${diffdate}/86400))

    И все бы хорошо, и он точно работал, но сейчас падает на diffdate в ошибку «syntax error: invalid arithmetic operator (error token is «.

    Может кто-то сталкивался?
    Заранее спасибо.
  • Answer selected by Eugene2012 at 25-07-2023, 11:08.
    Hamardaban
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • May 2019
    • 2713

    может дело в кавычках вокруг выражения у дифф?

    Вот скрипт на sh для freebsd

    Code:
    #!/bin/sh
    #Prepared by Marcin 'szremo' Szremski'
    #setenv LC_ALL en_GB.UTF-8
    LC_ALL=en_GB.UTF-8
    export LC_ALL
    
    SSL_DATE=$(echo | /usr/local/bin/openssl s_client -servername $1 -connect $1:443 2>/dev/null | /usr/local/bin/openssl x509 -noout -dates | /usr/bin/grep notAfter | /usr/bin/awk -F = '{ print $2 }' | /usr/bin/awk 'BEGIN {OFS = "-"} {print $1,$2,$4}')
    #echo $SSL_DATE
    EXPTIME=$(/bin/date -j -f  "%b-%d-%Y" $SSL_DATE +%s)
    #echo $EXPTIME
    TODAY=$(/bin/date +"%b-%d-%Y")
    #echo $TODAY
    CURRENT=$(/bin/date -j -f "%b-%d-%Y" $TODAY +%s)
    #echo $CURRENT
    LC_ALL=ru_RU.UTF-8
    export LC_ALL
    NUM=$(($EXPTIME - $CURRENT))
    RESULT=$(($NUM/86400))
    echo $RESULT​

    Comment

    • Hamardaban
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • May 2019
      • 2713

      #2
      может дело в кавычках вокруг выражения у дифф?

      Вот скрипт на sh для freebsd

      Code:
      #!/bin/sh
      #Prepared by Marcin 'szremo' Szremski'
      #setenv LC_ALL en_GB.UTF-8
      LC_ALL=en_GB.UTF-8
      export LC_ALL
      
      SSL_DATE=$(echo | /usr/local/bin/openssl s_client -servername $1 -connect $1:443 2>/dev/null | /usr/local/bin/openssl x509 -noout -dates | /usr/bin/grep notAfter | /usr/bin/awk -F = '{ print $2 }' | /usr/bin/awk 'BEGIN {OFS = "-"} {print $1,$2,$4}')
      #echo $SSL_DATE
      EXPTIME=$(/bin/date -j -f  "%b-%d-%Y" $SSL_DATE +%s)
      #echo $EXPTIME
      TODAY=$(/bin/date +"%b-%d-%Y")
      #echo $TODAY
      CURRENT=$(/bin/date -j -f "%b-%d-%Y" $TODAY +%s)
      #echo $CURRENT
      LC_ALL=ru_RU.UTF-8
      export LC_ALL
      NUM=$(($EXPTIME - $CURRENT))
      RESULT=$(($NUM/86400))
      echo $RESULT​

      Comment

      • Eugene2012
        Member
        • Apr 2020
        • 31

        #3
        Код что надо, но ошибка та же. Перепробовал 5 вариантов. Вот ведь линукс то какой упертый))

        Comment

        Working...