Backup Incremental com Rsync
Publicado por Thiago Henrique Lopes (última atualização em 31/01/2019)
[ Hits: 8.529 ]
Homepage: https://github.com/Th14go
Backup utilizando a ferramenta de linha de comando rsync.
O rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois são trocados entre os servidores somente as diferenças entre dois grupos de arquivos. Existem dois métodos para executar o backup rsync, uma forma segura no destino no fstab ou inseguro, apresentarei as duas formas.
Dependências:
# apt - get install cifs - utils --- para suporte ao cifs
Verificar suporte montagem cifs:
# cat /proc/filesystems | grep cifs
nodev cifs (resultado se tiver suporte)
Criar diretório:
# mkdir /mnt/backup
Editar FSTAB:
# nano /etc/fstab
Forma insegura:
//10.9.1.100/backup /mnt/backup cifs username=user,password=senha,user,dir_mode=0777,file_mode=0777 0 0
Desta forma fica visível no fstab sua senha do computador da rede de destino do backup;
Forma segura:
# cd /
# nano .pwdrsync.txt
username=usuario
password=suasenha
chmod 600 .pwdrsync.txt
//10.9.1.100/backup /mnt/backup cifs credentials=/.pwdrsync.txt,user,dir_mode=0777,file_mode=0777 0 0
Para confirmar se deu tudo certo, montar as unidades:
# mount -a
-> montar todas unidades.. Deverá aparecer a unidade montada com o destino remoto.
Execução do script, lembrando de alterar as variáveis!
#!/bin/bash #Backup Criado por: Thiago Henrique Lopes #GitHub - https://github.com/Th14go/rsync-incremental #Monta Caminho Backup mount /mnt/backup # PEGA DATA ATUAL, DIA,MES,ANO, HORA,MINUTO,SEGUNDOS, PARA ARQUIVOS DE LOG DATA=`date +%x-%k%M%S` esp=`df -h /mnt/backup` # LOCAL PARA ARMAZENAR ARQUIVOS DE LOG LOG=/var/log/rsync/log-$DATA.txt # LOCAL ORIGEM PARA BACKUP ORIGEM=/home/user/backup/ # LOCAL DESTINO PARA BACKUP DESTINO=/mnt/backup/ echo " " >> $LOG echo " " >> $LOG echo "| ----------------------------------------------" >> $LOG echo " Sincronizacao iniciada em $DATA" >> $LOG # EXECUTA SCRIPT rsync --backup --backup-dir=$DATA -ravz --no-perms --no-owner --no-group $ORIGEM $DESTINO >>$LOG echo " Sincronizacao Finalizada em $DATA " >> $LOG echo "| -----------------------------------------------" >> $LOG echo " " >> $LOG echo " " >> $LOG #Verifica Espaço Disponivel em Destino echo "-----------------------------------------------------">> $LOG echo " Espaço em Disco $esp" >> $LOG echo "-----------------------------------------------------">> $LOG # ENVIA LOG LOCAL PARA DESTINO REMOTO DE LOG cp -r /var/log/rsync/ mnt/backup #Desmonta Caminho Backup umount /mnt/backup
Backup de MySQL para uso no cron / cPanel
Limpeza dos dados do rConfig (ferramenta open-source de gerenciamento de configuração
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta