Backup automatizado com HD externo

Este é o meu primeiro artigo do VOL e tem o intuito de ensinar como criar scripts para backups automatizados em HDs externos, partições, pendrives, etc. Como sou administrador de redes, vivo tendo problemas com backup e esta é uma solução muito útil. Espero que gostem!

[ Hits: 75.131 ]

Por: Christiano Bruno em 01/11/2007 | Blog: http://www.christiano.com.br/


Criando e entendendo os scripts



Este tipo de backup é útil para quem precisa compactar uma quantidade muito grande de arquivos diariamente sem perda de tempo. O método utilizado para compressão é o "TAR.GZ", que suporta (compactado) tamanhos superiores a 2 GB, diferentemente de arquivos "ZIP" que se corrompem.

Para começar, antes de mais nada precisaremos definir um local para guardar os scripts que serão criados.

Crie a pasta /script-backup:

# mkdir /script-backup
# cd /script-backup


Para cada dia da semana criei uma pasta dentro do meu drive (HD externo) e dei permissão total.

Antes precisei montar a partição (sdb1 é onde está meu HD externo ligado na USB):

# mount /dev/sdb1 /backup
# mkdir /backup/segunda
# chmod 777 /backup/segunda

.
.
. # mkdir /backup/sexta
# chmod 777 /backup/sexta
# umount /dev/sdb1


Esta é uma forma mais organizada de armazenar os backups. Crie as pastas de acordo com a necessidade, colocando o nome de acordo com o dia da semana.

Para criar os scripts, abra seu editor de textos (no meu caso uso o VIM) e acrescente o código abaixo. Salve dentro da pasta /script-backup:

# vim bkp-segunda

Faça este mesmo procedimento para os outros dias necessários. Como meu backup é diferenciado para cada dia da semana, fiz o mesmo procedimento 5 vezes (de segunda a sexta).

OBS.: Lembre-se de alterar a variável "DIA" que está na linha 6 para não correr o risco de apagar dados por engano.

#######################################
# SCRIPT BACKUP DIÁRIO SERVIDOR DADOS #
#######################################

# DEFINE AS VARIÁVEIS QUE SERÃO UTILIZADAS

DIA=segunda-feira
DATA=`date +%d-%m-%Y-%H.%M`

# MONTA O PONTO DE MONTAGEM /BACKUP
mount /dev/sdb1 /backup
montado=`mount | grep /backup`

# SE A MONTAGEM NÃO ESTIVER UP ENTÃO FECHA, CASO CONTRÁRIO REALIZA O BACKUP
if [ -z "$montado" ]; then
    exit 1
else

# APAGA OS BACKUPS ANTIGOS DO MESMO DIA DA SEMANA
rm -rf /backup/"$DIA"/*.tar.gz

# COMPACTA TODO O CONTEÚDO DAS PASTAS DENTRO DE /DADOS INDIVIDUALMENTE.
tar -zcvf /backup/"$DIA"/contabil-"$DATA".tar.gz /dados/contabil/
tar -zcvf /backup/"$DIA"/diretoria-"$DATA".tar.gz /dados/diretoria/
tar -zcvf /backup/"$DIA"/financeiro-"$DATA".tar.gz /dados/financeiro/
tar -zcvf /backup/"$DIA"/fiscal-"$DATA".tar.gz /dados/fiscal/
tar -zcvf /backup/"$DIA"/pessoal-"$DATA".tar.gz /dados/pessoal/
tar -zcvf /backup/"$DIA"/vendas-"$DATA".tar.gz /dados/vendas/

# DESMONTA O PONTO DE MONTAGEM /BACKUP
umount /backup

fi

# FIM DAS INSTRUÇÕES

Para tornar os scripts executáveis faça o seguinte:

# chmod +x bkp-segunda

    Próxima página

Páginas do artigo
   1. Criando e entendendo os scripts
   2. Agendando a execução dos scripts
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Monitorando servidores pelo celular

Apresentando o Yad - "zenity melhorado"

cal2svg - brincando com shell script e arquivos vetoriais SVG

Assinatura de documentos PDF em lote via Bash

Receba seu IP externo via e-mail ou ensine o bash a ler e enviar e-mails

  
Comentários
[1] Comentário enviado por malanga em 01/11/2007 - 13:29h

opa

vc tem algum coisa sobre scritp de backup em DVDrw??

quero formatar o DVD antes de cada backup

[2] Comentário enviado por cmercaldo em 01/11/2007 - 14:40h

Grande Christiano.

Achei seu artigo muito interessante.
Gostaria apenas de demonstrar meus testes com o TARGZ.

Sugiro testar o seu backup com um arquivo maior que 2.1gb. Tive problemas em compactar arquivos com mais de 2.1bg e tive que optar pelo RAR.

Ficava assim:

TAR:
tar a -r -y -ow -m3 /opt/nt/institucional/bkINSTITUCIONAL-`date +%d%m%y`.rar /arquivos/institucional/*

Agora assim:
rar a -v1500000 -r -y -ow -m3 /opt/nt/institucional/bkINSTITUCIONAL-`date +%d%m%y`.rar /arquivos/institucional/*

AGORA consigo controlar o tamanho (-v1500000) dos arquivos gerados na compactação e os arquivos gerados são: bkINSTITUCIONAL.part1.rar, bkINSTITUCIONAL.part2.rar, bkINSTITUCIONAL.part3.rar.

Todos com 1.6gb e de fácil descompactação. (para descompactar com o rar, basta copiar o arquivo para o windows e descompactar normalmente ou utilize o comando unrar do linux)

Fica ai.....minha contribuição para o seu artigo!!

Att.
Claudio M

[3] Comentário enviado por silmar.anjos em 01/11/2007 - 15:59h

e como da o comando para descompactar ? via rar ?

[4] Comentário enviado por ledilson em 05/11/2007 - 08:02h

Opa!

Cada um cada um... Mas...

Você vai ter um script de back-up para cada dia da semana?

Não é melhor trocar "DIA=segunda-feira" por "DIA=`date +%a`" e deixar ele pegar o dia automaticamente?

Porque não usar Bzip2 no lugar de Gzip... ele compacta bem mais...

Parabéns pelo artigo...

Abraço!


[5] Comentário enviado por metabolicbh em 05/11/2007 - 09:14h

malanga, meu servidor não tem gravador (nem CD, nem DVD), portanto não tenho como testar para você. Mas creio que você encontrá alguma coisa deste tipo aqui no VOL. T+

Claudio M, realmente não fiz testes com arquivos maior que 2.1gb. Geralmente "zipo" mais QUANTIDADE do que TAMANHO. Valeu pela dica.

ledilson, desta forma funciona também, porém acho que o valor desta variavel é o dia da semana em Inglês (Sunday, Monday, Tuesday, Wednesday...), dai teria que mudar o nome das pastas... porém como expliquei no artigo, utilizo um script pra cada dia pois são backup's diferentes. Mesmo assim fica ai sua dica tb, vlw...

[6] Comentário enviado por claudiobalbin em 17/01/2008 - 15:40h

Fiz uma adaptação aqui na empresa utilizando o HD exerno com uma partição FAT32 para o backup, assim se o servidor parar por algum motivo basta plugar o HD em um outro micro para vizualisar os arquivos.

Excelente solução, parabéns!

[7] Comentário enviado por emelicio em 08/05/2008 - 11:37h

Solução Muito boa, mais estou tendo um probleminha, estou usando um pen-drive para o backup, e quando uso o crontab, ele não desmonta o ponto de montagem backup

Se executar o scrip diretamente funciona blz... mais pelo agendamento não Funciona.

O que será???

[8] Comentário enviado por metabolicbh em 08/05/2008 - 15:37h

Boa Tarde, emelicio . Cara, se você está executando o arquivo e o backup está sendo feito normalmente desmontando o pendrive, não teria porque não funcionar pelo Crontab também... Ele chega a fazer o backup quando você agenda no Crontab?? Tente inserir o usuario "root" na linha do seu cron para ele rodar como root e ver se faz. Qualquer dúvida pode perguntar... Abraços

[9] Comentário enviado por fatreis em 27/05/2008 - 13:35h

Meu nome é Fabio e estou iniciando com linux.
Pergunta 2 : Como faço para o linux identificar o HD externo USB ou via PCI ATA, plugo na USB e faço oq para apareçer este driver?
Pergunta 1 : onde eu crio esta pasta? "Crie a pasta /script-backup"
Pergunta 2 : onde crio e que nome dou aos arquivos dos scripts? "SCRIPT BACKUP DIÁRIO SERVIDOR DADOS "
Pergunta 3 : que nome dou a este arquivo com o código"# vim bkp-segunda".

[10] Comentário enviado por metabolicbh em 27/05/2008 - 13:48h

Boa tarde Fábio, seja muito bem vindo ao mundo Linux. Bom, pelo que posso ver você está com muitas dúvidas. Vamos por etapa:
Para que este script de backup funcione primeiro você deve criar os arquivos que irão conter os códigos para realização do backup (os SCRIPTS). O comando "VIM" + "nome do arquivo" abre o editor de texto padrão do Debian, para que você possa inserir todo o código que coloquei neste artigo. Ex.: "vim bkp-segunda" (cria o arquivo para realizar o backup de segunda-feira). Para criar a pasta padrão onde será salvo seus scripts você escolhe o caminho que preferir. Por exemplo: "mkdir /script-backup". Para montar a partição para acessar seu HD externo utilize o comando: "mount /dev/sdb1 /backup". Dispositivos externos USB geralmente são /DEV/SDB1 ou SDB2, etc...

[11] Comentário enviado por fatreis em 27/05/2008 - 16:26h

O linux não monta o sbd1 o mesmo informa que não existe, será que preciso reiniciar o linux?
Posso utilizar o Konsole para digitar estes comandos.

[12] Comentário enviado por juthaijr em 28/05/2008 - 14:40h

Senhores... Sou novato aí no Mundo linux e por isso gostaria da ajuda de vocês !!!

Acontece o seguinte, necessito automatizar todo o backup no Hd Externo qeu possuo de 500GB como fazer? uma vez que o mesmo está formatado em NTFS e o linux que utilizo REDHAT não o reconhece...

[13] Comentário enviado por metabolicbh em 28/05/2008 - 15:06h

?comentario=Tente seguir o seguinte tutorial que explica como acessar NTFS: http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2359

[14] Comentário enviado por emelicio em 23/10/2008 - 20:01h

Bom alterei um pouco o script do sistema de backup. O novo script esta realizando o backup corretamente, só que apresenta um probleminha...

Por exemplo:
Os nomes nos arquivos do backup, ficam diferentes dos nomes dos arquivos originais.

Nome original: Modelo de Carta de correção.doc
Nome no backup: Modelo de Carta de correção.doc

Nome original: PROMOÇÃO DE INVERNO.doc
Nome no backup: PROMOÇÃO DE INVERNO.doc

Na realidade ficam diferente apenas as letras ç e ã õ

Alguem sabe o que pode ser?

[15] Comentário enviado por pcq2010 em 10/02/2010 - 08:08h

Linux Backup

[16] Comentário enviado por removido em 30/12/2010 - 01:43h

emelicio

os arquivos quando interpretados através do shell, não são reconhecidos os caracteres com acento, "'ç" ,etc... uma dica seria você renomear os arquivos com letras minusculas e sem espaço ou usando ( _ ) por exmplo (promocao_de_inverno.doc) , assim não ira ocorrer essas anomalias novamente!

Abraço.

[17] Comentário enviado por xirux em 06/02/2012 - 16:33h

Emelicio, deve haver uma configuração a ser feita em relação ao UTF8 para deixar de ter incompatibilidade com caracteres especiais, tipo acentos. Isso é feito no SAMBA e FSTAB. Preciso pesquisar mais pra poder te ajudar. Se alguém tiver a resposta...

[18] Comentário enviado por tntdanilo em 17/07/2013 - 01:31h

tem como alterar o backup pra fazer em um computador windows 7 em rede?
O cenario eh, quero salvar os arquivos do samba rodando em debian em uma maquina windows7 em rede.

att


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts