É muito comum a perda de dados ao formatar uma máquina ou até mesmo ao instalar uma nova distro.
Aconteceu comigo quando troquei o Debian Etch pelo Slackware 11, pois o Slackware dispõe as partições em ordem crescente de número (hda1, hda2, ..., hdax), diferente do Debian e outras que mostram na mesma ordem em que as partições estão fisicamente no disco.
Resultado: perdi todos os 40 GB de dados IMPORTANTES que eu tinha.
Pus me a pensar numa maneira simples de salvar o conteúdo de uma pasta ou partição qualquer sempre que o sistema fosse reiniciado ou até mesmo desligado.
Então lembrei do runlevel 0 (ou 6) que se encaixa direitinho nessa situação.
Vamos à obra:
Crie e salve seu script de backup, abaixo vai um exemplo:
1. #!/bin/bash
2. # - - - monta a partição de destino - - -
3. mount -t vfat /dev/hda2 /mnt
4. cp -r /dados/* /mnt/backup
5. # - - - desmonta a partição destino - - -
6. umount /dev/hda2
Comentários:
a montagem (linha 3) pode ser feita em qualquer partição, no meu caso escolhi uma partição Windows por motivos particulares;
/dados/* (linha 4) são todos os arquivos ou diretórios alvos do seu backup;
use a opção -r no comando cp (linha 4), pois sem ela não serão copiados os subdiretórios que porventura você criar;
não esqueça de tornar seu script executável com o comando:
# chmod 770 endereço_do_script
Crie um link simbólico do seu script no diretório /etc/rc.d/ ou o diretório similar da sua distribuição:
# ln -s endereço_do_seu_script /etc/rc.d
Agora adicione no início do arquivo /etc/rc.d/rc.0 a seguinte linha:
/etc/rc.d/nome_do_link_que_aponta_para_seu_script
Pronto, agora sempre que você desligar ou reiniciar sua máquina será feita a cópia integral dos arquivos indicados na linha 4 do script.
Espero ajudar outros a não caírem na minha displicência.
[1] Comentário enviado por tenchi em 20/03/2007 - 10:28h
Uma sugestão: depois de criar a cópia de backup, ficaria legal compactar o arquivo de backup com o tar, além de nomea-lo com algo que lembre a data do backup. Também seria interessante que o backup não fosse feito toda vez que o sistema é desligado, mas sim de semana a semana, não sei. E eh possível fazer isso sem o crontab, somente verificando a data ou o dia da semana.
Isso foi só uma sugestão para melhorar o script.
Flw.
[2] Comentário enviado por removido em 20/03/2007 - 14:45h
Concordo contigo tenchi e na verdade até quis implementar essas e outras idéias que tive, mas depois que você envia a dica para a espera não tem como editá-la.
Ontem mesmo postei uma pergunta sobre como comparar diretórios em relação a mudanças, recebi uma sugestão bacana e somado com a sua deve ficar bem interessante.
Valeu!