Backup no runlevel 0 (Slackware 11)

Publicado por Perfil removido em 20/03/2007

[ Hits: 5.973 ]

 


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

Como criar uma senha muito forte para o seu e-mail

Sistemas de conteúdo em Webserver de projeto pessoal em ambiente SourceForge

Editor Geany(IDE) + Python3

Como fazer para o Linux reproduzir sons MIDI

Flatpak no openSUSE Leap 15 e Tumbleweed

Leitura recomendada

Cli-Apps.org - Repositório de shell scripts

Curso de shell script em vídeo

Criando programas com opções

Como somar todos os números contidos num arquivo texto

diff - Comando com exemplos

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts