Backup em HD Externa com Rsync
Publicado por Rômulo Mazzuco Grandini (última atualização em 12/03/2012)
[ Hits: 8.855 ]
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
infonow - all system information
Compactar e descompactar arquivos de forma simples
Reiniciar modem via Shell Script
Limpar o cache do squid3 sem parar a internet por muito tempo
Instalação dos principais programas para um usuário comum
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Como Incorporar o Áudio no Executável ? (2)
LibreOffice alterar nomenclatura do ícone (13)
O que você está ouvindo agora? [2] (130)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter