Backup RSYNC
Publicado por Cristian (última atualização em 14/06/2016)
[ Hits: 15.188 ]
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 de MySQL para uso no cron / cPanel
Script de Backup do Perfil dos Usuários do Sistema em Batch do Windows
Backup de MySql para outro servidor FTP!
Criptografando arquivos para enviar pra sua nuvem
Backup utilizando rsync com envio do log e informativo via e-mail
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
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
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
Como atribuir corretamente o CNES final baseado nas regras de certific... (1)
Suporte a Markdown ou BBCODE para o VOL (0)
Ubuntu 24 [ Wireless sendo atacada ] (2)