Backup RSYNC
Publicado por Cristian (última atualização em 14/06/2016)
[ Hits: 15.171 ]
Esse script faz o backup de pastas selecionadas de um servidor Linux e sincroniza com outro servidor Linux utilizando RSYNC. Ao concluir a sincronização ele faz o envio de email colocando em anexo o arquivo do log do backup e se ele foi bem ou mal sucedido.
Obs.: para funcionar corretamente deve-se editar o script conforme seu ambiente.
################################################## #### Desenvolvido por Cristian M. Caetano######### #### DATA: 09/05/2016 ############################ ####EMAIL: cristiancaetano@gmail.com############# ################################################# #OBS: para funcionar corretamente devera criar um arquivo com o nome 'PASTA' e deixar no mesmo diretorio do script e mudar o caminho da variavel ARQUIVO dentro da funçao @BACKUPPASTAS #!/bin/bash INICIO=`date +%d/%m/%Y-%H:%M:%S` LOG=/var/log/`date +%Y-%m-%d`_BKP_DIARIO.txt PBACKUP=/diretorio/BKPDIARIO #Pasta onde sera colocadao o backup antes da sincronização DATA=`date +%d-%b-%Y` HORAAT=`date +%H:%M` #HORA= `date +%H:%M:%S` # FUNCAO CRIA PASTA DIARIA Com a function @CRIAPASTADIARIA () { mkdir -p /Diretorio/BKPDIARIO/$DATA } # FUNCAO HORA function @HORA () { HORA=`date +%H:%M` } #FUNCAO COMPACTA PASTAS function @BACKUPPASTAS () { ARQUIVO="/diretorio/PASTA" for PASTA in `cat $ARQUIVO`; do LOCAL=`echo $PASTA |awk -F / {'print $NF'}` echo "" >> $LOG echo " Efetuando Backup da pasta $PASTA" >> $LOG echo "" >> $LOG tar -czf $PBACKUP/$DATA/$LOCAL.tar.gz $PASTA echo "Escrevendo backup diario em $PBACKUP" >> $LOG done; } #FUNCAO RODA RSYNC function @RODARSYNC() { echo " " >> $LOG echo " " >> $LOG echo "|-----------------------------------------------" >> $LOG echo " Sincronização iniciada em $DATA $HORAAT" >> $LOG sudo rsync -Cravzp /Diretorio/BKPDIARIO root@ipservidor:/mnt/backup/diretorio >> $LOG if [ $? = 0 ]; then #Verifica se a sincronizaçao foi bem sucedida se ela foi bem entra no if se nao cai no else echo " Sincronização Finalizada em $DATA $HORAAT" >> $LOG echo "|-----------------------------------------------" >> $LOG echo " " >> $LOG echo " " >> $LOG echo " deletando backups Locais de $PBACKUP $DATA $HORAAT" >> $LOG echo "Backup Deletado com Sucesso de $PBACKUP" >> $LOG echo "Enviando Email de informação para o Administrador" >> $LOG echo "" >> $LOG @ENVIAEMAIL # chama a funçao envia email - Backup Sucedido com sucesso else echo "Sincronização Mau concluida $DATA $HORAAT" >> $LOG @ENVIAMAILPROBLEMA # chama a funçao envia email - backup mau Sucedido fi rm -rf /DadosObra/BKPDIARIO/* } #FUNCAO QUE ENVIA EMAIL PARA O ADMINISTRADOR function @ENVIAEMAIL () { EMAIL_FROM="remetente@email.com" EMAIL_TO="destinatario@email.com" SERVIDOR_SMTP="smtp.email.com:porta" SENHA=****** ASSUNTO="$HOSTNAME - $1" MENSAGEM=$2 if [ "$1" == "" ] ;then ASSUNTO="BKP DIARIO FEITO" fi if [ "$2" == "" ] ;then MENSAGEM="Backup Realizado com Sucesso e Sincronizado Servidor de Arquivos" fi if [ "$3" != "" ] ;then MENSAGEM="$2 `cat $3`" fi sendemail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTo" -m "$MENSAGEM" $ANEXO -a $LOG -o tls=yes -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA echo "Email Enviador com Sucesso para $EMAIL_TO" >> $LOG echo " Deletando Arquivo de log do local" >> $LOG rm -rf $LOG } #FUNCAO QUE ENVIA EMAIL DE PROBLEMA CASO NÃO FOR FEITO O RSYNC COM SUCESSO function @ENVIAMAILPROBLEMA () { EMAIL_FROM="remetente@email.com" EMAIL_TO="destinatario@email.com" SERVIDOR_SMTP="smtp.email.com:porta" SENHA=acpo@2015 ASSUNTO="$HOSTNAME - $1" MENSAGEM=$2 if [ "$1" == "" ] ;then ASSUNTO="BKP DIARIO FEITO" fi if [ "$2" == "" ] ;then MENSAGEM=" ERRO AO FAZER A SINCRONIZAÇÃO DOS DADOS - VERIFIQUE A CONDEXAO COM O SERVIDOR" >> $LOG fi if [ "$3" != "" ] ;then MENSAGEM="$2 `cat $3`" fi sendemail -f $EMAIL_FROM -t $EMAIL_TO -u "$ASSUNTo" -m "$MENSAGEM" $ANEXO -a $LOG -o tls=yes -s $SERVIDOR_SMTP -xu $EMAIL_FROM -xp $SENHA } @CRIAPASTADIARIA @BACKUPPASTAS @RODARSYNC
Backup, compactação, verificação e transferência de arquivos
Script de Back Up, com limpeza de back ups antigos e e-mail com logs
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Compartilhando uma ideia sobre computação quantica (16)
Instalação de Drive - USB para HDMI Ubuntu (1)
Instalação do Ubuntu 22.04 LTS (7)
Meus HDs não aparecem mais no boot da placa mãe (19)
Problema de Comunicação Entre Bridges após Configuração de Links no RB... (0)