Backup em HD Externa com Rsync

Publicado por Rômulo Mazzuco Grandini (última atualização em 12/03/2012)

[ Hits: 9.036 ]

Download 5339.backup.sh




Neste script, procuro resolver o chato problema de quando plugamos uma device usb no linux, ele ser reconhecido cada hora com um nome (/sdd1 sdd2 sde1 etc), utilizando para evitar esse problema uma combinação de blkid + awk. Ele direciona logs para arquivo por data.log no apache e mantém apenas os últimos 5 dias de logs.

Nota: para utilizar, é necessário ter o apache e o rsync instalados, além dos diretórios citados.

  



Esconder código-fonte

#!/bin/bash
#####################################
#####        BACKUP v2.0        #####
#####  Romulo Grandini 06/03/12 #####
#####################################

# Dica de como agendar no cron para backup diario em tal horario
# 0 17 * * * /home/scripts/rbackup.sh

# DEFININDO VARIAVEIS
# Origens de Backup
ORIGEM1="/mnt/hd-1"
ORIGEM2="/mnt/hd-2"


# Destino de backups (Uma Hd Externa)
DESTINO="/mnt/backup"

# Caminho dos logs e nome por data
LOG="/var/www/backup_logs/`date +%d-%m-%y | tr / -`.log"

# Logs de leitura iniciais
echo "" >> $LOG
echo "" >> $LOG
echo "######################################" >> $LOG
echo "###                            BACKUP v2.0                         ###" >> $LOG
echo "########      BACKUP AUTOMATIZADO      #########" >> $LOG
echo "######################################" >> $LOG
echo "" >> $LOG
echo Iniciando script................[OK] >> $LOG
echo Limpando logs antigos ..........[OK] >> $LOG

# Procura e remove logs com mais de 5 dias
find /var/www/backup_logs -type f -mtime +5 -exec rm -rf {} ";"

# Define o /dev da HD Externa (Para pegar o blkid do device use blkid como root no terminal)
DEVICE=`/sbin/blkid |grep  10C83EF3C83ED6A5 | awk -F: '{print $1}'`

# Desmonta e monta a HD Externa
umount -l $DEVICE

# Verifica se HD esta montada ou nao
if mount -t ntfs-3g $DEVICE $DESTINO
then
   {
   # Se estiver montado, inicia a sincronia de Hd-1 e Hd-3 somente
   echo "" >> $LOG
   echo "HD EXTERNA OK: Iniciando a sincronia de discos..." >> $LOG
   echo "" >> $LOG
   rsync -auv --delete $ORIGEM1 $DESTINO >> $LOG
   rsync -auv --delete $ORIGEM2 $DESTINO >> $LOG
   echo "" >> $LOG
   echo "BACKUP REALIZADO COM SUCESSO!" >> $LOG
   }
else
  {
echo "" >> $LOG
echo "ERRO AO MONTAR HD EXTERNA: BACKUP CANCELADO!" >> $LOG
  }
fi

# Desmonta a HD ao finalizar
echo "Fim do Relatorio." >> $LOG
umount -l $DEVICE

Scripts recomendados

Conversor de músicas

Shell Script para Linux HOWTOs

Script de compilação do kernel 3.3.2 com cflags -march=native e patch 3.3.0-ck1 para ubuntu 11.10

Compilação automática do kernel Linux-libre 3.14.16

Verificando roteamento em vários servidores Linux


  

Comentários
[1] Comentário enviado por bonilhasilvio em 04/07/2012 - 19:15h

Romulo, seu artigo me ajudou muito. Fiz diversas adaptações, como, no meu caso faço cópia de um servidor para outro e para o relatório inclui alguns código html para serem lidos no famigerado IE.
Obrigado,

[2] Comentário enviado por ch4c4r em 04/07/2012 - 20:20h

Fico feliz em ter contribuído bonilhasilvio! Grande abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts