#!/bin/bash # # simple dovecot imap plugin # RETURN_VAL="" HOST="" function send_config { echo 'graph_title Dovecot Logins' echo 'graph_args --base 1000 -l 0' echo 'graph_vlabel Login Counters' echo 'graph_category dovecot' echo 'login_total.label Total Logins' echo 'login_total.type ABSOLUTE' echo 'login_imap.label IMAP Logins' echo 'login_imap.type ABSOLUTE' echo 'login_pop.label POP3 Logins' echo 'login_pop.type ABSOLUTE' } function get_time() { date_string="5 minutes ago" #full_date=$(date --date="${date_string}" +%Y-%m-%d) full_date=$(date --date="${date_string}" '+%b %d') hour=$(date --date="${date_string}" +%H) minutes=$(date --date="${date_string}" +%M) minutes=$(echo $minutes | sed 's/^\([0-9]\)[0-4]/\1[0-4]/') minutes=$(echo $minutes | sed 's/^\([0-9]\)[5-9]/\1[5-9]/') RETURN_VAL="${full_date} ${hour}:${minutes}" return 0 } function send_stats() { get_time time=$RETURN_VAL egrep "^${time}.* (pop3|imap)-login: Info: Login: " /var/log/dovecot-info.log | awk 'BEGIN {imap = 0; pop = 0;} $4 == "pop3-login:" { pop++; } $4 == "imap-login:" { imap++; } END { print "login_total.value " imap+pop; print "login_imap.value " imap; print "login_pop.value " pop; }' return 0 } function main { if [ "$1" = "autoconf" ]; then echo yes exit 0 fi if [ "$1" = "config" ]; then send_config exit 0 fi send_stats } main $@