ZIMBRA - BACKUP CONTAS DE EMAILS FECHADAS A MAIS DE 90 DIAS
Olá Pessoal,
Eu me chamo Anderson e hoje compartilharei com vocês mais um de meus scripts de backup do serviço de email ZIMBRA.
Neste script a listagem de contas é criada dinamicamente e imediatamente é iniciado o processo de backup. Neste exemplo eu usei uma função chamado zm_backup_full para diminuir as linhas de código.
#!/bin/bash
# TÍTULO: ROTINA DE BACKUP DE CONTAS FECHADAS A MAIS DE 90 DIAS SEM USO
# AUTOR: ANDERSON DA SILVA SERRA
# CONTATO: anderson.silva.serra@gmail.com
# Twitter: @andersonsserra
# INSTAGRAM: @awksolutions
# Arquivo: kb-seati-s00001.sh
#
#
#
#
#habilite o set -x caso queira habilitar o modo debug do script:
#set -x
########################### ARMAZENAMENTO DE LOGS ############################
LOG_PATH="/opt/zimbra/backup/scripts/logs/"
LOG="$LOG_PATH/contas_sem_acesso_90D_$(date +"%Y%m%d%H%M%S").log"
exec 1>> >(tee -a "$LOG")
exec 2>&1
##############################################################################
#verificar existencia de pastas:
if [ ! -d "$LOG_PATH" ]; then
mkdir $LOG_PATH
fi
#===========================================
# variaveis de controle
ZMAILBOXCMD="/opt/zimbra/bin/zmmailbox"
DESTINO="/opt/zimbra/backup"
FILEOK="/nfs/mailbox4/"
FILE="/tmp/contas_90dias_sem_acesso_$(date +"%Y%m%d%H%M%S").tmp"
#
#
#
#
if [ ! -d "$FILEOK"];
then
logger -p local5.info -t [$0] "Falha na montagem do serviço NFS $FILEOK"
exit 0
fi
#
##############################################
#
#
# VERIFICAR SE A SESSAO ESTÁ COMO USUARIO ZIMBRA
whoami | grep zimbra
if [ $? -eq "1" ]; then
echo "You need run how user zimbra!!! Bye!"
exit 0
fi
#
#
#
#
#
#
### funções serviços zimbra
#---------------------------------------------------------------------------
zm_backup_full() {
# o arfumento $1 representa a conta de email
logger -p local5.info -t [$0] "Conta $mailbox: iniciando backup dos dados..."
$ZMAILBOXCMD -z -m $1 -t 0 getRestURL "//?fmt=tgz&query=is:anywhere" > $DESTINO/$1.tgz
wait
md5sum $DESTINO/$1.tgz > $DESTINO/$1.tgz.md5
wait
#movimentação de arquivo gerado para pasta de dados NFS:
mv $DESTINO/$1.tgz $DESTINO/$1.tgz.md5 $FILEOK
#verificação se o arquivo de backup foi criado:
logger -p local5.info -t [$0] "Conta $1: Backup concluído com sucesso backup dos dados."
}
#---------------------------------------------------------------------------
#===========================================
# Carregamento das variaveis de ambiente do zimbra
cd /opt/zimbra
source ~/bin/zmshutil
zmsetvars
timestamp=`date --date "-90 days" +'%Y%m%d%H%M%S'`
echo $timestamp
/opt/zimbra/common/bin/ldapsearch -x -H ldap://10.22.8.117 -D 'uid=zimbra,cn=admins,cn=zimbra' -w $zimbra_ldap_password -b 'dc=exemplo,dc=com,dc=br' -LLL "(&(!(zimbraIsSystemResource=TRUE))(objectClass=zimbraAccount)(zimbraLastLogonTimestamp<=$timestamp.000Z)(zimbraMailHost=`zmhostname`)(zimbraAccountStatus=closed))" | grep ^mail: | awk '{print $2}' > $FILE
#CHECAR SE PASTA DE DESTINO EXISTE
if [ ! -d "$FILEOK" ];
then
exit 0
fi
#inicio backup contas
for mailbox in `cat $FILE`;
do
#backup dos dados de email atraves do zmmailbox
zm_backup_full ${mailbox}
done
exit 0
</pre>
Comentários
Postar um comentário