Arquivos mensais: junho 2017

Localiza e move arquivos menor que -4k [ ou maior +1M e etc ]

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
#!/bin/bash
base_dir="/home/"
bkp_dir_tmp="/root/bkp-$(date +%d-%m-%Y)"
 
#for i in $(find $base_dir/dbs/ -type f -size +1M)
for i in $(find $base_dir/dbs/ -type f -size -4k)
do
 
	if [ ! -d  $bkp_dir_tmp ];then 
		echo "Preparando..."
		mkdir $bkp_dir_tmp
		kill -9 $(ps aux | grep mav5 | awk '{print $2}') > /dev/null 2>&1
		mav_kill=0
	fi
 
	mv $i $bkp_dir_tmp/
	if [ $? -eq 0 ];then
		echo "$i movido para $bkp_dir_tmp/"
	fi
 
done
 
if [ ! -z $mav_kill ] && [ $mav_kill -eq 0 ];then
	echo "Reiniciando Mav"
	$base_dir/bin/mav5 --no-update
fi

Samba 4 | listar usuários por grupo com samba-tool – listar objetos do AD com ldapsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
#Lista usuários por grupo:
#Primeiro, obter a lista (list_grups):
samba-tool group list >> list_grups
 
#Agora, listar os usuários por grupo e criar um arquivo com nome do grupo que será listado contendo os usuários membros:
while read i ; do samba-tool group listmembers “$i>>$i” ; done < list_grups
 
#Listar Objetos:
ldapsearch -x -D "marcelo.viana@meudominio.local" -b "CN=Users,DC=MEUDOMINIO,DC=LOCAL" -w "SENHA" -h "IP_SAMBA4" | grep userPrincipalName
#Listar objetos filtrando por email:
ldapsearch -x -D "marcelo.viana@meudominio.local" -b "CN=Users,DC=MEUDOMINIO,DC=LOCAL" -w "SENHA" -h "IP_SAMBA4" | grep userPrincipalName
 
# ADMG

Reencaminha emails que chegam de um [ determinado remetente para determinado destinatário ] e reenvia para um terceiro destinatário | Dovecot

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
#!/bin/bash
# Este script lista todos emails enviados $de para $para e encaminha para $encaminha
de="@remetente.com.br"
para="destinatario@dominio.com.br"
encaminha="encaminhaparamim@outrodominio.com.br"
base_dir="/opt/mav5/script"
hoje=$(date +%Y%m%d)
enviados_db="/tmp/id_enviados_$hoje.db"
falha_db="/tmp/falha_enviar_$hoje.db"
env_=0
erro_=0
total_=0
 
if [ ! -e $enviados_db ];then
        touch $enviados_db
fi
 
for f in $(ls /opt/mav5/dbs/mms.auditdb.$hoje.sqlite3)
do
 
        for i in $(/opt/mav5/bin/sqlite3 $f "select messages.file,messages.id from messages INNER JOIN recipients ON  messages.id = recipients.message WHERE messages.sender LIKE '%$de' AND recipients.recipient = '$para'")
        do
                $((total_++))
                id_msg=$(echo $i | sed 's/.*|//')
                file_msg=$(echo $i | sed 's/|.*//')
 
                file_bz2=$(echo -n $file_msg | grep "eml.bz2" > /dev/null 2>&1 ; echo $?)
 
                # verifica se mensagem já foi enviada
                cat $enviados_db | grep -w $id_msg > /dev/null 2>&1
                if [ $? -ne 0 ] && [ $file_bz2 -eq 0 ]; then
                        #move o email para caixa postal definido em $para. A caixa postal deve ser local
                        if [ $(bzcat $file_msg | /usr/lib/dovecot/deliver -d $encaminha > /dev/null 2>&1 ; echo $?) ]; then
                                echo $id_msg >> $enviados_db
                                echo "Encaminhado para $encaminha"
                                $((env_++))
                        else
                                echo $file_msg >> $falha_db
                                echo "Erro ao enviar"
                                $((erro_++))
                        fi
                fi
        clear
        echo "Analisando.. [$file_msg] - Enviados: [$env_] - Erros: [$erro_]"
        done
 
done
 
# resumo
clear
echo "Analisados [$total_] Enviados: [$env_] - Erros: [$erro_]"
 
# Marcelo Viana
# ADMG