Backup local simples com o rsync

O script abaixo tem por objetivo realizar o backup/sincronização (incremental) entre duas pastas diferentes, facilitando e agilizando p processo de cópia de grandes volumes de arquivos.

Algorítmo

O algorítmo deste script segue os seguintes passos:

  1. Verificação dos argumentos de entrada:
    1. Verifica se a quantidade de argumentos não é dois (caso postivo, mostra a função ajuda e finaliza);
    2. Verifica se a quantidade de argumentos é dois (caso positivo, verifica os locais – se são acessíveis ou não);
  2. Com os dois argumentos de entrada (origem e destino, respectivamente), chama a função backup
  3. Finaliza o script
#!/bin/ksh
#set -o xtrace
ajuda() {
print "Uso: ./backup_rsync.ksh <origem> <destino>"
 exit 1
}
backup() {
origem=${1}
 destino=${2}
rsync -av ${origem}/ ${destino}/
}
if [ $# -ne 2 ]
 then
ajuda
elif [ $# -eq 2 ]
 then
print "Verificando os locais:"
 print "${1}"
 print "${2}"
if [ ${1} == ${2} ]
 then
print "${1} e o mesmo local de destino (${2})"
 exit 1
elif [ ${1} != ${2} -a -r ${1} -a -w ${2} ]
 then
backup ${1} ${2}
else
print "${1} inacessivel ou ${2} nao pode ser escrito"
 exit 1
fi
else
ajuda
fi
exit 0

Exemplo

No exemplo abaixo, serão sincronizadas as pastas “teste1” e “teste2”, ambas presentes no mesmo diretório em que o script será executado (o que não é uma necessidade). Cada uma das pastas contém os arquivos “arquivo1” e “arquivo2”, respectivamente. O objetivo é fazer com que a “pasta2” contenha os “arquivo1” e “arquivo2”. Em qualquer caso, nenhum arquivos é apagado.

./backup_rsync.ksh teste2 teste1
 Verificando os locais:
 teste2
 teste1
 sending incremental file list
 arquivo2
sent 127 bytes received 31 bytes 316.00 bytes/sec
 total size is 0 speedup is 0.00

Observações

  • Na primeira vez em que o script for utilizado, pode ser que leve um tempo maior; depois disso, o processo de sincronização é mais rápido;
  • Na linha 17 do script, a barra no final de ${origem} e ${destino} é necessária para que o conteúdo de ${origem} seja armazenado no primeiro nível de ${destino}, caso contrário a pasta ${origem} será criada dentro de ${destino}.

O que não fazer quando o HD apresenta falhas

Se o seu HD (externo ou interno) começa a fazer ruídos estranhos, está na hora de começar a fazer um backup. A maioria dos HDs é mecânico, ou seja, há um braço de leitura que percorre a superfície de um disco e le/escreve ou procura os dados que estão lá armazenados. Os problema é que, como tudo tem um limite, por fadiga, o motor responsável por fazer o braço de leitura se mover ou mesmo os disco girar, pode apresentar um defeito e começar a falhar ou simplesmente para de funcionar sem a menor cerimônia. É sempre bom, depois de alguns anos de uso (quem sabe se 3 ou 4 anos é muito para um HD de 500GB?), comprar um novo dispositivo e inicar um backup. HDs são muito sensíveis e uma queda ou uma simples pancada, podem ser “fatais”.

Quando um HD começar a falhar, o que fazer? Se possível, faça um backup, sempre! Não limite-se a fazer backups apenas em outro(s) HD(s). Compre mídias ópticas (DVDs, CDs etc) e as utilize! Compre mídias boas, de qualidade. Mídias muito baratas, certamente vão se deteriorar com o tempo e o investimento não valerá apena. Utilize os serviços de nuvem, como o Dropbox, Ubutnu One e outros. Caso não seja possível realizar um backup, desligue o computador e evite utilizar o disco. Neste caso, se os seus dados são muito importantes, talvez seja o caso de ter que enviar o disco à uma firma ou empresa especializada para tentar salvá-lo. Mas nada pode ser garantido! Tudo depende do problema. Além dos defeitos mecânicos, são também possíveis defeitos lógicos, como defeitos na placa lógica do HD, responsável pelo controle do disco e do braça de leitura. Cada caso é um caso passível de uma avaliação rigorosa. É possível trocar a placa lógica, é possível reparar o braço de leitura, mas nunca um disco arranhado…