Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Script postfix Teste4
- # Maicon Radeschi
- clear
- #Variaveis de arquivos
- LOG_FILE_FULL="mail.log"
- LOG_FILE_DENIED_FULL="mail.log.denied"
- LOG_FILE_DENIED="mail.log.denied2"
- LOG_FILE="mail.log"
- ZIMBRA_USERS="users"
- INDEX="email.html"
- F_ENVIADOS_USER="enviados-user"
- F_ENVIADOS_TOTAL="enviados-total"
- F_FROM_TO="fromto"
- F_FROM="from"
- F_TO="to"
- #Outras variaveis
- DOMINIO="empresa.com.br"
- DIR_REPORT="report"
- echo -en "> Criando lista de 'Denied'... \t\t"
- cat $LOG_FILE_FULL | grep Denied > $LOG_FILE_DENIED_FULL
- cat $LOG_FILE_DENIED_FULL | cut -d' ' -f7 | grep -v "connect\|warning\|timeout\|setting\|Sent\|NOQUEUE\|lost\|Anonymous\|SSL_accept\|last\|statistics" | cut -d':' -f1 | sort | uniq -c > $LOG_FILE_DENIED
- TMP_NUM_DENIED="`cat $LOG_FILE_DENIED | wc -l | tr -d " "`"
- echo "|$TMP_NUM_DENIED Capturados|"
- echo -en "> Removendo 'Denied' do log... \t\t"
- grep -v "Denied" $LOG_FILE_FULL > $LOG_FILE
- echo "|OK|"
- echo -en "> Buscando total de usuarios... \t"
- cat $LOG_FILE | grep from= | cut -d' ' -f8 | grep -v 'from=<>,' | grep "$DOMINIO" | cut -d'<' -f2 | cut -d'>' -f1 | grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" | sed '/^\t/d' | sort | uniq > $ZIMBRA_USERS
- TMP_NUM_USERS="`cat $ZIMBRA_USERS | wc -l | tr -d " "`"
- echo "|$TMP_NUM_USERS Capturados|"
- echo -en "> Criando arquivo de remetentes... \t"
- #sed -rn '/from=/{s/.*from=<([^>]*)>.*/\1/;p}' $LOG_FILE | grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" | sed '/^\t/d' > from
- sed -rn '/from=/{s/.*from=<([^>]*)>.*/\1/;p}' $LOG_FILE > $F_FROM
- grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" $F_FROM > from2
- sed '/^\t/d' from2 > from3
- sed '/^$/d' from3 > $F_FROM
- rm -rf from2
- rm -rf from3
- echo "|OK|"
- echo -en "> Criando arquivo de destinatarios... \t"
- #sed -rn '/to=/{s/.*to=<([^>]*)>.*/\1/;p}' $LOG_FILE | grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" | sed '/^\t/d' > to
- sed -rn '/to=/{s/.*to=<([^>]*)>.*/\1/;p}' $LOG_FILE > $F_TO
- grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" $F_TO > to2
- sed '/^\t/d' to2 > to3
- sed '/^$/d' to3 > $F_TO
- rm -rf to2
- rm -rf to3
- echo "|OK|"
- echo -en "> Ordenando 'From-To'... \t\t"
- paste $F_FROM $F_TO | sort > from-to2
- sed '/^\t/d' from-to2 | uniq -u > $F_FROM_TO
- rm -rf from-to2
- echo "|OK|"
- echo -en "> Contando emails por usuario... \t"
- sort $F_FROM | uniq -c | grep "$DOMINIO" | sed 's/^[ \t]*//' > $F_ENVIADOS_USER
- echo "|OK|"
- echo -en "> Contando total enviados... \t\t"
- cat $F_FROM | wc -l > $F_ENVIADOS_TOTAL
- echo "|`cat $F_ENVIADOS_TOTAL` enviados|"
- rm -rf $INDEX
- echo "<TABLE>" > $INDEX
- COUNTER=1
- while [ $COUNTER -le $TMP_NUM_USERS ];
- do
- USER_A="`sed -n $COUNTER' p;' $ZIMBRA_USERS`"
- USER_NUM="`cat enviados-user | grep $USER_A | cut -d' ' -f1`"
- echo "> Gerando pagina individual do usuario: $USER_A"
- echo "<TR>" >> $INDEX
- echo "<TD><A HREF='report/$USER_A.html'>$USER_A</A><BR></TD>" >> $INDEX
- echo "<TD><font face=Arial size=4></font>Total enviado: $USER_NUM</TD>" >> $INDEX
- echo "</TR>" >> $INDEX
- cat from-to | sed 's/\t/ /g' | grep $USER_A | cut -d' ' -f2 | uniq | sed 's/^.*$/&<BR>/' > $DIR_REPORT/$USER_A.html
- COUNTER=$(($COUNTER+1))
- done
- echo "</TABLE>" >> $INDEX
- rm -rf $LOG_FILE_DENIED
- rm -rf $LOG_FILE_DENIED_FULL
- rm -rf $LOG_FILE
- rm -rf $ZIMBRA_USERS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement