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!
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):
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:
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!!
[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.
[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.
[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...
[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...
[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!
[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.