diff options
Diffstat (limited to 'bin/get_mail_stats')
-rwxr-xr-x | bin/get_mail_stats | 79 |
1 files changed, 63 insertions, 16 deletions
diff --git a/bin/get_mail_stats b/bin/get_mail_stats index 2a07b73..0fcf20d 100755 --- a/bin/get_mail_stats +++ b/bin/get_mail_stats @@ -3,20 +3,67 @@ set -euo pipefail IFS=$'\n\t' -set +e -postfix_received=$(journalctl --since "0:00" _EXE=/usr/lib/postfix/bin/smtpd|grep "proxy-accept"| wc -l) -rbl_dropped=$(journalctl --since "0:00" -u postfix |grep "Service unavailable"|wc -l) -spampd_clean=$(journalctl --since "0:00" -u spampd| grep "clean message"| wc -l) -spampd_spam=$(journalctl --since "0:00" -u spampd| grep "identified spam"| wc -l) -sieve_spam=$(journalctl --since "0:00" _EXE=/usr/lib/dovecot/dovecot-lda| grep "Spam"| wc -l) -postfix_sent=$(journalctl --since "0:00" _EXE=/usr/lib/postfix/bin/smtp |grep "sent"| wc -l) -date=$(date -I) -set -e +time_frame="" +postfix_received="" +rbl_dropped="" +spampd_clean="" +spampd_spam="" +sieve_spam="" +postfix_sent="" -echo "Mail statistics for $(hostname) on $date" -echo "Received total: $postfix_received" -echo "RBL dropped: $rbl_dropped" -echo "Spampd clean: $spampd_clean" -echo "Spampd spam: $spampd_spam" -echo "Sieve spam: $spampd_spam" -echo "Sent: $postfix_sent" +function set_range() +{ + case $1 in + "month") + time_frame=$(date --date="last month" -I) + ;; + "week") + time_frame=$(date --date="last week" -I) + ;; + "day") + time_frame=$(date -I) + ;; + esac +} + +function get_stats() +{ + set +e + postfix_received=$(journalctl -S "$time_frame" _EXE=/usr/lib/postfix/bin/smtpd|grep "proxy-accept"| wc -l) + rbl_dropped=$(journalctl -S "$time_frame" -u postfix |grep "Service unavailable"| wc -l) + spampd_clean=$(journalctl -S "$time_frame" -u spampd| grep "clean message"| wc -l) + spampd_spam=$(journalctl -S "$time_frame" -u spampd| grep "identified spam"| wc -l) + sieve_spam=$(journalctl -S "$time_frame" _EXE=/usr/lib/dovecot/dovecot-lda| grep "Spam"| wc -l) + postfix_sent=$(journalctl -S "$time_frame" _EXE=/usr/lib/postfix/bin/smtp |grep "sent"| wc -l) + set -e +} + +function print_stats() +{ + echo "Mail statistics for $(hostname) since $time_frame" + echo "Received total: $postfix_received" + echo "RBL dropped: $rbl_dropped" + echo "Spampd clean: $spampd_clean" + echo "Spampd spam: $spampd_spam" + echo "Sieve spam: $spampd_spam" + echo "Sent: $postfix_sent" +} + +case ${@} in + "-w") + set_range "week" + ;; + "-m") + set_range "month" + ;; + "-d") + set_range "day" + ;; + *) + set_range "day" + ;; +esac + +get_stats +print_stats +exit 0 |