Backup Incremental com Rsync

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

[ Hits: 8.541 ]

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 Database MySQL Automatizado

Backup dinâmico de banco de dados MySQL

Lisa - sistema de backup com rsync

Script de Back Up, com limpeza de back ups antigos e e-mail com logs

DriveTool.sh: um script para cópia rápida e segura de arquivos para unidades flash USB


  

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