Backup Incremental com Rsync

Publicado por Thiago Henrique Lopes (última atualização em 31/01/2019)

[ Hits: 8.184 ]

Homepage: https://github.com/Th14go

Download rsync-incremental.sh




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!

  



Esconder código-fonte

#!/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

Scripts recomendados

Backup de Roteadores e Switches

Backup da pasta de usuário em sistemas GNU/Linux sem copiar os arquivos ocultos

Ferramenta de backup do HD para dispositivos externos

Script de backup Zabbix

Backup de arquivos e banco de dados com envio de e-mail


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts