Advertisement
radeschi

Relatórios postfix

Aug 16th, 2012
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.22 KB | None | 0 0
  1. #!/bin/bash
  2. # Script postfix Teste4
  3. # Maicon Radeschi
  4. clear
  5.  
  6. #Variaveis de arquivos
  7. LOG_FILE_FULL="mail.log"
  8. LOG_FILE_DENIED_FULL="mail.log.denied"
  9. LOG_FILE_DENIED="mail.log.denied2"
  10. LOG_FILE="mail.log"
  11. ZIMBRA_USERS="users"
  12.  
  13. INDEX="email.html"
  14. F_ENVIADOS_USER="enviados-user"
  15. F_ENVIADOS_TOTAL="enviados-total"
  16. F_FROM_TO="fromto"
  17. F_FROM="from"
  18. F_TO="to"
  19.  
  20. #Outras variaveis
  21. DOMINIO="empresa.com.br"
  22. DIR_REPORT="report"
  23.  
  24. echo -en "> Criando lista de 'Denied'... \t\t"
  25. cat $LOG_FILE_FULL | grep Denied > $LOG_FILE_DENIED_FULL
  26. 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
  27. TMP_NUM_DENIED="`cat $LOG_FILE_DENIED | wc -l | tr -d " "`"
  28. echo "|$TMP_NUM_DENIED Capturados|"
  29.  
  30. echo -en "> Removendo 'Denied' do log... \t\t"
  31. grep -v "Denied" $LOG_FILE_FULL > $LOG_FILE
  32. echo "|OK|"
  33.  
  34. echo -en "> Buscando total de usuarios... \t"
  35. 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
  36. TMP_NUM_USERS="`cat $ZIMBRA_USERS | wc -l | tr -d " "`"
  37. echo "|$TMP_NUM_USERS Capturados|"
  38.  
  39. echo -en "> Criando arquivo de remetentes... \t"
  40. #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
  41. sed -rn '/from=/{s/.*from=<([^>]*)>.*/\1/;p}' $LOG_FILE > $F_FROM
  42. grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" $F_FROM > from2
  43. sed '/^\t/d' from2 > from3
  44. sed '/^$/d' from3 > $F_FROM
  45. rm -rf from2
  46. rm -rf from3
  47. echo "|OK|"
  48.  
  49. echo -en "> Criando arquivo de destinatarios... \t"
  50. #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
  51. sed -rn '/to=/{s/.*to=<([^>]*)>.*/\1/;p}' $LOG_FILE > $F_TO
  52. grep -v "^[0-9][0-9][0-9][0-9][0-9][0-9]" $F_TO > to2
  53. sed '/^\t/d' to2 > to3
  54. sed '/^$/d' to3 > $F_TO
  55. rm -rf to2
  56. rm -rf to3
  57. echo "|OK|"
  58.  
  59. echo -en "> Ordenando 'From-To'... \t\t"
  60. paste $F_FROM $F_TO | sort > from-to2
  61. sed '/^\t/d' from-to2 | uniq -u > $F_FROM_TO
  62. rm -rf from-to2
  63. echo "|OK|"
  64.  
  65. echo -en "> Contando emails por usuario... \t"
  66. sort $F_FROM | uniq -c | grep "$DOMINIO" | sed 's/^[ \t]*//' > $F_ENVIADOS_USER
  67. echo "|OK|"
  68.  
  69. echo -en "> Contando total enviados... \t\t"
  70. cat $F_FROM | wc -l > $F_ENVIADOS_TOTAL
  71. echo "|`cat $F_ENVIADOS_TOTAL` enviados|"
  72.  
  73. rm -rf $INDEX
  74.  
  75. echo "<TABLE>" > $INDEX
  76. COUNTER=1
  77. while [ $COUNTER -le $TMP_NUM_USERS ];
  78.     do
  79.         USER_A="`sed -n $COUNTER' p;' $ZIMBRA_USERS`"
  80.         USER_NUM="`cat enviados-user | grep $USER_A | cut -d' ' -f1`"
  81.         echo "> Gerando pagina individual do usuario: $USER_A"
  82.         echo "<TR>" >> $INDEX
  83.         echo "<TD><A HREF='report/$USER_A.html'>$USER_A</A><BR></TD>" >> $INDEX
  84.         echo "<TD><font face=Arial size=4></font>Total enviado: $USER_NUM</TD>" >> $INDEX
  85.         echo "</TR>" >> $INDEX
  86.         cat from-to | sed 's/\t/ /g' | grep $USER_A | cut -d' ' -f2 | uniq | sed 's/^.*$/&<BR>/' > $DIR_REPORT/$USER_A.html
  87.         COUNTER=$(($COUNTER+1))
  88. done
  89.  
  90. echo "</TABLE>" >> $INDEX
  91.  
  92. rm -rf $LOG_FILE_DENIED
  93. rm -rf $LOG_FILE_DENIED_FULL
  94. rm -rf $LOG_FILE
  95. rm -rf $ZIMBRA_USERS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement