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

Postagens mais visitadas deste blog

PYTHON - ENVIAR MENSAGEM VIA TELEGRAM

Dicas Zimbra