Public feed
#723138
function relatorio()
{
# Consigo ler o log ?
if [ ! -r $LOGFILE ]; then
echo "Arquivo de log incorreto - $LOGFILE"
exit 2
fi
# Limpando o log
sed "/\(delivered\ to\ m\|queue\ active\|$TAG$\)/!d" $LOGFILE > $LOG
# Criando um arquivo com os ID's das mensagens e respectivos tamanhos
awk '$8~/^size=/{SIZE=gensub(/[^0-9]/,"","G",$8)/1024; printf "%s%.2f\n", $6,SIZE}' $LOG | sort -u > $IDSIZE
# Filtrando o log
sed "/$TAG$/!d" $LOG > $LOG.tmp
mv $LOG.tmp $LOG
# Apagando o arquivo de hoje, para evitar duplicacao
rm -f $DATAFILE
# Gerando o arquivo de dados
while IFS=$: read ID SIZE; do
#awk -v SIZE="${SIZE//,/.}Kb" '{print DT=$2"/"$1"|HR="$3"|AS="gensub(/.*Subject: (.*) from.*from.*$/,"\\1",1)"|DE="gensub(/^.*from=<([[:alnum:]@._-]+)>.*$/,"\\1",1)"|PR="gensub(/^.*to=<([[:alnum:]@._-]+)>.*$/,"\\1",1)"|TM="SIZE}' <(sed -n "/$ID.*$TAG/{p;q}" $LOG)
# Teste com sed
#LINHA="$(sed -n "/$ID.*$TAG$/{p;Q}" $LOG)"
LINHA="$(ed -s $LOG <<<"/${ID}.*${TAG}$/"$'p\nd\nw\nq' 2>&-)"
LINHA2="$(sed -n "s/\(...\)\ \([0-9]\{1,2\}\)\ \([0-9:]\+\).*Subject:\(.*\)\ from\ .*from=<\([0-9A-Za-z.@=\+\*_-]*\)>.*$/DT=\2\/\1\|HR=\3\|AS=\4\|DE=\5\|PR=/p" <<< $LINHA)"
END="${LINHA2}$(sed -n "s/^.*to=<\([0-9A-Za-z._=-@]*\)>.*$/\1\|TM=${SIZE}Kb/p" <<< $LINHA)"
[ ! -z "$END" ] && echo "$END" >> $DATAFILE.tmp
done < $IDSIZE
rm -f $LOG $IDSIZE
# Removendo os caracteres malucos do relatorio se houver PHP
if type -a php >/dev/null 2>&1; then
php -f /usr/libexec/post-la/convert.php $DATAFILE.tmp > $DATAFILE
rm -f $DATAFILE.tmp
else
mv $DATAFILE.tmp $DATAFILE
fi
YEAR="$(date +%Y)"
sed -i "s#\([0-9]\{1,2\}\)\/Jan#\1\/01/$YEAR#;s#\([0-9]\{1,2\}\)\/Feb#\1\/02/$YEAR#;s#\([0-9]\{1,2\}\)\/Mar#\1\/03/$YEAR#;s#\([0-9]\{1,2\}\)\/Apr#\1\/04/$YEAR#;s#\([0-9]\{1,2\}\)\/May#\1\/05/$YEAR#;s#\([0-9]\{1,2\}\)\/Jun#\1\/06/$YEAR#;s#\([0-9]\{1,2\}\)\/Jul#\1\/07/$YEAR#;s#\([0-9]\{1,2\}\)\/Aug#\1\/08/$YEAR#;s#\([0-9]\{1,2\}\)\/Sep#\1\/09/$YEAR#;s#\([0-9]\{1,2\}\)\/Oct#\1\/10/$YEAR#;s#\([0-9]\{1,2\}\)\/Nov#\1\/11/$YEAR#;s#\([0-9]\{1,2\}\)\/Dec#\1\/12/$YEAR#" $DATAFILE
# Acertando as permissoes para que o apache possa ler o arquivo
chown $WWWUSER.root $DATAFILE
chmod 0400 $DATAFILE
echo "Relatorio gerado com sucesso."
}