0
0
mirror of https://github.com/postfixadmin/postfixadmin.git synced 2024-09-20 03:36:20 +02:00
postfixadmin/cron/postfix_logs.sh
2022-03-16 21:39:25 +02:00

49 lines
1.4 KiB
Bash

#!/bin/bash
#
# The logs are in the mailog/ direcory.
# You need to execute (add in the crontab) this script and set the $CONF['maillogging'] to 'YES' in the config.inc.php
#
#TO DO
# - Delete old logs
cd $(dirname $0)
#check if maillog directory exists
if [ ! -d ../maillog ]
then
#create direcotry
mkdir ../maillog
fi
data=`date --date='1 day ago' +%F`
mysql -u root --skip-column-names --execute="USE postfix; SELECT username,domain FROM domain_admins WHERE active=1 AND domain <> 'ALL';" | while read username domain
do
#check if folder for domain doesn t exists
if [ ! -d ../maillog/$domain ]
then
echo "Directory does not exists for "$domain
#create direcotry
mkdir ../maillog/$domain
fi
grep @$domain /var/log/mail.log.1 | grep -v "postfix-policyd" | grep -v postgrey > ../maillog/$domain/$data-bulk.log
pflogsumm -i --problems_first --detail 5 ../maillog/$domain/$data-bulk.log > ../maillog/$domain/$data-pflogsum.log
grep @$domain /var/log/mail.log.1 | grep "Password mismatch" > ../maillog/$domain/$data-failed-auth.log
gzip ../maillog/$domain/$data-bulk.log
gzip ../maillog/$domain/$data-pflogsum.log
gzip ../maillog/$domain/$data-failed-auth.log
echo $domain
# rm ../maillog/$domain/$data-bulk.log
# rm ../maillog/$domain/$data-pflogsum.log
# rm ../maillog/$domain/$data-failed-auth.log
done