Backup em HD Externa com Rsync
Publicado por Rômulo Mazzuco Grandini (última atualização em 12/03/2012)
[ Hits: 9.036 ]
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
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
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)