Backup em fita DAT usando o comando tar (problemas e soluções)

Publicado por Daniel em 07/07/2007

[ Hits: 17.425 ]

 


Backup em fita DAT usando o comando tar (problemas e soluções)



Olá companheiros e companheiras,

Depois de muito sofrimento ao realizar backup com a fita DAT, resolvi escrever esta dica passando resolução dos problemas que tive.

Depois de escrever meu script para realizar backup e agendá-lo no crontab, comecei a ter dor de cabeça.

Problema/Solução 1

Primeiro, criei um arquivo texto contendo todos os diretórios que deveriam ser salvos. O conteúdo do arquivo (chamado arquivos_backup) ficou assim:

/etc
/var/log
/home
/samba/dados

Ao executar o comando de backup:

# tar -cvf /dev/st0 -T /root/backup/arquivos_backup

Porém, ele fazia apenas o backup do diretório /etc! Descobri que isto estava acontecendo por ter feito o "arquivo_backup" no bloco de notas do Windows e o Linux não estava entendendo o formato do arquivo. Para resolver, bastou executar o comando:

# dos2unix arquivos_backup

Pronto, agora o script faz o backup de todos os diretórios.

Problema/Solução 2

Corrigido o problema com o arquivo que contém os diretórios para backup, configurei o crontab para executar o script às 02:00:

00 02 * * 1-5 root tar -cvf /dev/st0 -T /root/backup/arquivos_backup

No dia seguinte verifiquei que ainda haviam erros e o script não foi executado. Descobri que tinha que colocar o caminho completo para onde se encontra o comando tar (/bin/tar) e pronto! Backup feito, ou melhor, quase feito.

Problema/Solução 3

Depois de executar o comando:

# tar -tvf /dev/st0 > conteudo.log

para listar o conteúdo da fita DAT, descobri que ele só estava fazendo backup ate /var/log, depois mais nada. Não continha /home e nem /samba/dados/.

Depois de uma semana quebrando a cabeça, consegui achar o problema. Estava executando o comando tar com a opção "v" (de verbose, ou seja, mostre-me o que acontece). Como o comando executa no background (por estar agendado no crontab), acredito que algum buffer estava estourando. As possíveis soluções são tirar o "v" do comando ou jogar a saída do verbose para o /dev/null, que foi a minha escolha. O agendamento no crontab ficou assim:

#00 02 * * 1-5 root /bin/tar -cvf /dev/st0 -T /root/backup/arquivos_backup > /dev/null 2> /home/camolez/logbackup.log

No final joguei tudo que é resultado "positivo" para /dev/null. Se preferir acompanhar de perto, redirecione este resultado para um arquivo. Fiz isso na última instância, jogando os possíveis resultados de erro para um arquivo chamado logbackup.log na minha área.

Para ter uma melhor aparência no resultado final do arquivo logbackup.log e também acompanhar o tempo entre o início e fim do backup, fiz um script:

#!/bin/sh
#***************************************************************
# Arquivo bash backup da fita DAT
# Criado por......: Daniel C. Camolez - 25/05/2007
# Alterado por....:
#***************************************************************

# Cabeçalho do backup

/bin/echo > /home/camolez/logbackup.log
/bin/echo "*** Inicio do backup ***" >> /home/camolez/logbackup.log
/bin/date >> /home/camolez/logbackup.log
/bin/echo >> /home/camolez/logbackup.log

# fazendo o backup dos dados
/bin/echo "Enviando para fita DAT" >> /home/camolez/logbackup.log
/bin/echo >> /home/camolez/logbackup.log
/bin/tar -cvf /dev/st0 -T /root/backup/arquivos_backup 1> /dev/null 2>> /home/camolez/logbackup.log

/bin/echo >> /home/camolez/logbackup.log

# ejetando a fita DAT
/bin/mt -f /dev/st0 eject 2>> /home/camolez/logbackup.log

# Rodapé do backup
/bin/echo >> /home/camolez/logbackup.log
/bin/echo ">>> Fim do backup <<<" >> /home/camolez/logbackup.log
/bin/date >> /home/camolez/logbackup.log

Bom, é isso aí. Passei por alguns sofrimentos por falta de leitura acredito (leiam os manuais). Está aí, resolvi colocar esta dica para quem está começando a trabalhar com backup em fita DAT.

Abraços a todos,

Camolez

Outras dicas deste autor

Montando pasta compartilhada do Windows

Leitura recomendada

Simulados LPIC-1: provas 101 e 102

Driver Nvidia no Zenwalk 7.0

Conectando celular Samsung SGH em PC com Linux

Encerrando os processos de um usuário

Coleção de papéis de parede para Slackware

  

Comentários
[1] Comentário enviado por renatoasantana em 17/07/2007 - 11:20h

Muito bom!!! Estava tentando descobrir uma forma de fazer isto a tanto tempo e agora já resolvi meu problema!!! Muito obrigado!!! Boa sorte.

[2] Comentário enviado por ramos1986 em 10/03/2008 - 19:22h

show de bola esse script cara, parabéns....

[3] Comentário enviado por darkevil em 10/08/2012 - 15:29h

Pessoal conseguirão fazer rodar o Scrpit de Backup Linux com Tar, Rsync com essas video aulas.

http://www.pbsys.com.br/products.php?product=Script-de-Backup-Linux-com-tar%2C-rsync-e-crontab

Abraços,

Thamyres
[DIVULGAÇÃO]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts