-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path_Avas_Spam
126 lines (115 loc) · 4.79 KB
/
_Avas_Spam
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
#+----------------GERANDO LOG-----------------------+OK"
SCRIPT=`basename $0`
LOG=`echo /opt/zimbra/$SCRIPT.log | sed s/'.sh'/'.log'/g`
exec &> >(tee -a "$LOG")
echo "[`date`] ==== Inicio de rotina..."
#+----------------GERANDO LOG-----------------------+OK"
clear
#Checa se o usuario é root
LOCAL_USER=`id -u -n`
if [ $LOCAL_USER != "root" ] ; then
echo " Rodar como usuario root"
echo " saindo..."
echo ""
exit
fi
dir="Diretorio Atual : `pwd`"
hostname="Hostname : `hostname --fqdn`"
ip="IP : `ifconfig | awk 'NR>=2 && NR<=2' | awk '{print $3}'`"
versaoso="Versao S.O. : `lsb_release -d | cut -d : -f 2- | sed 's/^[ \t]*//;s/[ \t]*$//'`"
release="Release : `lsb_release -r | cut -d : -f 2- | sed 's/^[ \t]*//;s/[ \t]*$//'`"
codename="Codename : `lsb_release -c | cut -d : -f 2- | sed 's/^[ \t]*//;s/[ \t]*$//'`"
kernel="Kernel : `uname -r`"
arquitetura="Arquitetura : `uname -m`"
versaozimbra="Versao Zimbra : `su - zimbra -c 'zmcontrol -v'`"
echo "+-------------------------------------------------+"
echo "| Utilitario para Zimbra com Avas v1.2 |"
echo "+-------------------------------------------------+"
echo "+-------------------------------------------------+"
echo "| Escrito por: |"
echo "| Thiago Castro - www.hostlp.net |"
echo "+-------------------------------------------------+"
echo
echo $dir
echo "+-------------------------------------------------+"
echo $hostname
echo "+-------------------------------------------------+"
echo $ip
echo "+-------------------------------------------------+"
echo $versaoso
echo "+-------------------------------------------------+"
echo $release
echo "+-------------------------------------------------+"
echo $codename
echo "+-------------------------------------------------+"
echo $kernel
echo "+-------------------------------------------------+"
echo $arquitetura
echo "+-------------------------------------------------+"
echo $versaozimbra
echo "+-------------------------------------------------+"
echo
echo "Aperte <ENTER> para continuar e começar..."
read
sleep 5
echo
echo "==================EXECUTANDO======================="
echo
#Variavel
UsrZ="su - zimbra -c"
echo "Download do Filtro - AVAS SPAM..."
echo
DEST="/tmp/`hostname`"
mkdir $DEST -p
cd $DEST
wget --no-check-certificate --no-cache --no-cookies -N https://raw.githubusercontent.com/thytetgc/Zimbra/master/filtro-avas-spam 1&> /dev/null
echo "+-------------------------------------------------+OK"
echo
echo "Exportando lista de usuarios..."
echo
/opt/zimbra/bin/zmprov -l gaa | tee -a $DEST/usuarios
echo "+-------------------------------------------------+OK"
echo
echo "Exportando Filtros..."
echo
mkdir $DEST/filtros/ -p
for user in `cat $DEST/usuarios`; do
/opt/zimbra/bin/zmprov ga $user zimbraMailSieveScript > /tmp/filtrostemp
sed -i -e "1d" /tmp/filtrostemp
sed 's/zimbraMailSieveScript: //g' /tmp/filtrostemp > $DEST/filtros/$user.filtros
rm -f /tmp/filtrostemp
echo "$user -- OK"
done
echo "+-------------------------------------------------+OK"
echo
echo "Retirando da importação contas spam, ham, virus e galsync..."
echo
find $DEST -type f -name '*' -exec sed -i '/spam/d' "{}" \;
find $DEST -type f -name '*' -exec sed -i '/ham/d' "{}" \;
find $DEST -type f -name '*' -exec sed -i '/virus/d' "{}" \;
find $DEST -type f -name '*' -exec sed -i '/gal/d' "{}" \;
find $DEST -type f -name '*' -exec sed -i '/admin/d' "{}" \;
find $DEST -name 'spam.*' -exec rm {} \;
find $DEST -name 'ham.*' -exec rm {} \;
find $DEST -name 'virus.*' -exec rm {} \;
find $DEST -name 'gal.*' -exec rm {} \;
find $DEST -name 'admin.*' -exec rm {} \;
echo "+-------------------------------------------------+OK"
echo
echo "Mesclando os dois filtros..."
echo
sed -i '/require/d' $DEST/filtro-avas-spam
find $DEST/filtros -type f -name '*' -exec sed -i '/# Avas/{/}/{s/# Avas.*}//;t};:a;/}/!{N;s/\n//;ta;};s/# Avas.*}/\n/;}' "{}" \;
find $DEST/filtros -type f -name '*' -exec sed -i '/^$/d' "{}" \;
for user in $(/opt/zimbra/bin/zmprov -l gaa); do cat $DEST/filtro-avas-spam >> $DEST/filtros/$user.filtros ; done
#for users in `cat $DEST/usuarios`; do cat $DEST/filtro-avas-spam >> $DEST/filtros/$user.filtros ; done
echo "+-------------------------------------------------+OK"
echo
echo "Importando Filtros..."
echo
for user in $(/opt/zimbra/bin/zmprov -l gaa); do /opt/zimbra/bin/zmprov ma $user zimbraMailSieveScript "`cat $DEST/filtros/$user.filtros`"; echo "$user -- OK"; done
#for user in `cat $DEST/usuarios`; do /opt/zimbra/bin/zmprov ma $user zimbraMailSieveScript "`cat $DEST/filtros/$user.filtros`"; echo "$user -- OK"; done
echo "+-------------------------------------------------+OK"
echo
echo "[`date`] ==== Fim de rotina..."