Backup em HD Externa com Rsync

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

[ Hits: 8.139 ]

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

Criando um pacote autoinstalador em shell

verificacao de ip externo

Backup mysqldump usando Shell Script

Autenticando no Velox Empresarial

Pesquisar extensões 3


  

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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts