Backup RSYNC
Publicado por Cristian (última atualização em 14/06/2016)
[ Hits: 15.362 ]
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 uma base MYSQL específica.
Script de backup de usuários do sistema
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)
Pastas da raiz foram para a área de trabalho (4)
usb's param de funcionar do nada (6)
Como criar condições de monitoria de 2 IPs no Zabbix (0)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (2)