Backup em HD Externa com Rsync
Publicado por Rômulo Mazzuco Grandini (última atualização em 12/03/2012)
[ Hits: 9.017 ]
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.
#!/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
Script para montar/desmontar cdrom e disquete
Teste do /admin/scripts Alteração
Sincronizando seu hosts.deny com blacklist online
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (1)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (3)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[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