Backup no runlevel 0 (Slackware 11)
Dica publicada em Shell Script / Introdução
Backup no runlevel 0 (Slackware 11)
É 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:
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
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
# 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.
Isso foi só uma sugestão para melhorar o script.
Flw.