check_domain 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. . /usr/lib/nagios/plugins/utils.sh
  3. WHOIS=/usr/bin/whois
  4. DOMAIN_NAME=$1
  5. DAYS=$2
  6. if [ -z "${DOMAIN_NAME}" ]; then
  7. echo "Domain not defined!"
  8. exit $STATE_WARNING
  9. fi
  10. [ -z "${DAYS}" ] && DAYS=30
  11. time_shift=$((86400 * ${DAYS}))
  12. if [ `echo "${DOMAIN_NAME}" | egrep -i "RU$"` ]; then
  13. paid_data=`${WHOIS} "${DOMAIN_NAME}" | grep paid-till`
  14. [ -z "${paid_data}" ] && exit $STATE_UNKNOWN
  15. paid=`${WHOIS} "${DOMAIN_NAME}" | grep paid-till | awk '{ print $NF }' | awk -F"T" '{ print $1 }' | sed 's/\./\//g'`
  16. else
  17. paid=`${WHOIS} "${DOMAIN_NAME}" | grep -E "(Expiration|Expiry Date)" | head -1 | awk '{ print $NF }' | awk -F"T" '{ print $1 }' | sed 's/-/\//g'`
  18. [ -z "${paid}" ] && exit $STATE_UNKNOWN
  19. paid_data="paid-till: ${paid}"
  20. fi
  21. now=`date +"%s"`
  22. paid_date=`date --date="${paid}" +"%s"`
  23. remaining=`expr ${paid_date} - ${now}`
  24. if [ ${remaining} -lt 0 ]; then
  25. echo "${DOMAIN_NAME} domain prosrali..."
  26. exit $STATE_CRITICAL
  27. fi
  28. remaining_days=`expr ${remaining} / 86400`
  29. echo "${DOMAIN_NAME} ${paid_data} remaining ${remaining_days} days"
  30. [ ${remaining} -gt ${time_shift} ] && exit $STATE_OK
  31. exit $STATE_WARNING