Pular para o conteúdo

Backup no runlevel 0 (Slackware 11)

Dica publicada em Shell Script / Introdução
Perfil removido removido
Hits: 6.596 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

KDM dicas

Driver Modem Lucent no K/Ubuntu 7/8

Imprimindo frames corretamente no Firefox

Warning: Could not modify /etc/ppp/pap-secrets: Permission denied

Nix Packages no Ubuntu ou outras distribuições

Capturando screenshots com Shell Script

Imprima textos inteiros com o comando "echo"

Algoritmo para converter minutos em hora

C Dialog

Ocultando a versão do seu BIND

#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.

Contribuir com comentário

Entre na sua conta para comentar.