De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 16 de novembro de 2016
Eu procuro manter entre dois a três backups de todos os sites que mantenho. É um pouco de paranóia, mas felizmente, até hoje, nos quase 23 anos de existência da Dicas-L eu nunca perdi um arquivo sequer.
Eu faço backups em meu computador pessoal e também em dois HDs externos. Nos
HDs eu faço apenas uma cópia com o programa rsync
da posição existente em
determinado momento, ou seja, não é incremental.
O script que eu uso para os backups incrementais é bastante simples:
#!/bin/bash data=`date +%Y%m%d` cd /backup mkdir $data cp -alR `cat last`/* $data cd $data rsync -avz -e ssh --delete --exclude '/tmp' \ --exclude '/proc' \ --exclude '*.log' \ --exclude '/sys' \ --exclude '/dev/' \ --exclude '/boot/' \ --exclude '/var/spool' \ --exclude '/var/tmp' \ --exclude '/var/log' \ --exclude '/var/tmp' \ --exclude '/var/cache' \ www.dicas-l.com.br:/ . echo $data > ../last
Este script roda automaticamente a partir do arquivo /etc/rc.local
,
ou seja, sempre que ligo meu computador o backup é feito.
Para cada dia, eu crio um novo diretório, cujo nome é derivado da data do dia,
determinado a partir da variável $data
. O comando
$ cp -alR `cat last`/* $data
faz uma cópia utilizando hard links a partir do diretório criado quando da execução do backup do dia anterior. Com os hard links os arquivos não são efetivamente copiados, mas é feito um link para o arquivo original. Um arquivo em disco pode ter vários apontadores para ele, que se comportam exatamente como o arquivo original.
O arquivo last
contém a data em que o backup foi executado pela última
vez e é criado ao final da execução do programa. A diretiva -l
do comando
cp
instrui o programa para não copiar os arquivos mas sim para criar
um hard link para o arquivo original. Desta forma posso ter múltiplos
backups sem aumentar consideravelmente o consumo de espaço em disco. Posso
manter dezenas de versões com uso de pouco espaço em disco adicional.
Na sintaxe do comando rsync
eu excluo diversos arquivos temporários e
outros que não são diretamente relevantes para a reconstrução do sistema em
outro provedor.
No diretório /backup
eu terei então diversos outros diretórios contendo a
posição do portal segundo determinado dia. O nome dos diretórios segue o
formato AAAAMMDD
(ano, mês e dia).
O script é bem simples, pode ser aperfeiçoado de várias formas, mas me atende bem até o momento. Existem pacotes prontos que fazem a mesma função, com mais controles e opções como o software rsnapshot.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários