Backup no runlevel 0 (Slackware 11)

Publicado por Perfil removido em 20/03/2007

[ Hits: 5.674 ]

 


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:

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.

Outras dicas deste autor

Criando e utilizando um catálogo de e-mails no Claws

Corrigindo o bug no gnome-panel do Ubuntu 10.04

Exibindo vídeos no xmms (com mplayer instalado)

Desabilitando a vaca no Linux Mint

GoogleEarth - "setup.data/setup.xml:1: parser error : Start tag expected not found"

Leitura recomendada

Aulas Shell Script do zero - Parte 4

Onde está a linha que preciso editar? [Resolvido]

Limpando lixeira centralizada do Samba

Backup da pasta de usuário sem copiar os arquivos ocultos

Dica para uso do echo

  

Comentários
[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!

[3] Comentário enviado por andersonjackson em 21/03/2007 - 10:16h

Outra ideia é usar o rsync no lugar do "cp", que irá copiar apenas os novos arquivos. O comando é o seguinte:

rsync -Cragovzp /dados /mnt/backup

Se quiser que ele delete os arquivos excluidos inclua "--delete".

Abraço.

[4] Comentário enviado por removido em 09/06/2007 - 00:20h

pessoal, tentei melhorar a idéia dessa dica publicando o script:
http://www.vivaolinux.com.br/scripts/verScript.php?codigo=2775
No entanto não consegui encaixar o rsync nele. Talvez eu crie outro usando ele como foco. Mas valeram as dicas. Thanks.



Contribuir com comentário