Script de backup full + diferencial + compactador + restauração

Desenvolvi 4 scripts para implantar um sistema de backup, uso eles em clientes e estão totalmente funcionais. Temos os scripts full.backup, diferencial.backup, compactar.backup que devem ser agendados pela crontab ou anacron, e restore.backup que deve ser rodado manualmente. HAPPY LINUX HAPPY BACKUP.

[ Hits: 184.068 ]

Por: Jhoni Vieceli em 22/02/2008 | Blog: http://www.connectionserver.com.br


Conclusão



Espero que todos tenham gostado artigo.

Não esqueçam que script full e diff devem ser agendados, para configurar é usar o "crontab -e". Abaixo um exemplo de configuração da crontab para eles.

# m     h       dom     mon     dow     command
  30    8       *       *       6       /var/backups/v1.2/full.backup
  0     18      *       *       1-6     /var/backups/v1.2/diferencial.backup

Sei que o script pode melhorar, está na sua versão 3, mas gostaria do comentário de vocês para ajudar a melhorá-lo.

Qualquer dúvida sobre seu funcionamento é só postar.

Abraço a todos.

Jhoni Vieceli

Página anterior    

Páginas do artigo
   1. Introdução
   2. Backup full
   3. Backup diferencial
   4. Compactação
   5. Restore e visualização de logs
   6. Conclusão
Outros artigos deste autor

Free Animation e Game Developer com Linux

Leitura recomendada

Conectando-se à Internet via ADSL com PPPoE no OpenBSD

Alguns recursos do BASH para você utilizar em seus programas

Redundância de links - Mon + Shell Script

Minha caixa de ferramentas no GNU/Linux

Criando uma ISO bootável do OpenBSD

  
Comentários
[1] Comentário enviado por gzanoni em 22/02/2008 - 11:44h

Me parece bem bacana, quando estiver em casa vou ver o que podemos melhorar nos scripts.

Parabéns!

[2] Comentário enviado por exercitobr em 22/02/2008 - 11:49h

Parabéns, um dos melhores que já vi. Recomendo!
Saudações!

[3] Comentário enviado por JhoniVieceli em 22/02/2008 - 11:53h

-----------ATENÇÃO!!!!! BUG NO SCRIPT DE BACKUP DIFERENCIAL----------

Coloquei uma variável que não existe no código do Backup Diferencial, a váriavel é a $TMP_FIND, isso pode estar causando erros como esse
"find: argumento inválido `-exec' para `-cmin'"
o código com erro é esse:
find $SRCDIR -type f -cmin $TMP_FIND -exec tar -rvf $ARQ {} ";"

Para CORRIGIR!
cole esse código a seguir com a variável correta! ($TIME_FIND) no lugar do código find anterior
find $SRCDIR -type f -cmin $TIME_FIND -exec tar -rvf $ARQ {} ";"

Peço desculpa a todos por esse erro, acabei mandando um script de versão anterior a final pro VOL que continha esse BUG sem querer.

Slackjackson quanto ao seu problema verifique lá no inicio do código se a variável $SRCDIR esta preenchida corretamente (com espaços entre os diretórios e com aspas duplas fechando). Se ainda estiver dando erro tente colocar o nome do diretório diretamente no local sem usar variavel isso pode resolver o problema.
Exemplo:
find /home/usuario -type f -cmin $TIME_FIND -exec tar -rvf $ARQ {} ";"

Obrigado e desculpa pelo pequeno erro e qualquer coisa posta de novo que vou ajudando na medida que eu puder

Abraço a todos

Valeu!

[4] Comentário enviado por caue.garcia em 22/02/2008 - 12:47h

Realmente funciona...

Obrigado!!

[5] Comentário enviado por asrocha em 22/02/2008 - 13:32h

Os scripts bons realmente, bem documentados, também já estou utilizando.

[6] Comentário enviado por coffani em 22/02/2008 - 14:35h

ja vai pros meus favoritos...

[7] Comentário enviado por agimenez em 22/02/2008 - 19:12h

muito legal cara, eu criei um esses dias, mas vou estudar o seu pra ver o q posso melhorar, uma coisa q fiz q eh bem legal, seria vc logar o bkp e enviar por email usando o mutt.

Por ex.: Crie um script que chame seu backup assim:

#!/bin/bash

LOG_BKP="/var/log/backup"
DATENAME=`date +%Y%m%d`
DATA=`date +%d/%m/%Y`

cd /etc
./bkp_sistemas.sh > $LOG_BKP/backup$DATENAME.log
/usr/bin/mutt -i $LOG_BKP/backup$DATENAME.log -s "Backup 'sistemas' de $DATA" email@dominio.com.br < /dev/null

No meu script de bkp ele tb vai soltando resultados se foi tudo bem ou nao e isso vai pro log..... a ultima linha, ele irá enviar por e-mail o log.

Parabens mais uma vez.. Abraço!

[8] Comentário enviado por marcaoguitarra em 23/02/2008 - 06:46h

bacana, vou testar também.

[9] Comentário enviado por JhoniVieceli em 23/02/2008 - 09:22h

Opa cara vou testar essa parte ai de enviar por email, qualquer duvida eu posto aqui

valeu

[10] Comentário enviado por gersonraymond em 23/02/2008 - 11:15h

Show de bola, muito bom mesmo, parabéns.

[11] Comentário enviado por vera sucoski em 25/02/2008 - 13:17h

Excelente! Já estou utilizando. Recomendo a todos

[12] Comentário enviado por agimenez em 27/02/2008 - 08:35h

Cara, tenho impressão que o comando:

#apagando arquivos mais antigos (a 7 dias que existe (-cmin +2)
find $DSTDIR -name "dif*" -ctime $TIME_DEL -exec rm -f {} ";"
if [ $? -eq 0 ] ; then
echo "Arquivo de backup mais antigo eliminado com sucesso!"
else
echo "Erro durante a busca e destruição do backup antigo!"
fi

ele não está apagando no meu, mas o comando está certinho....
Alguma diga para debugar?

valeu

[13] Comentário enviado por JhoniVieceli em 27/02/2008 - 09:13h

kra tenta fazer o seguinte:

Obs: supondo que onde esteja os backups esteja em /mnt/hdb

1 - escreva em um shell ai a parte o comando
find /mnt/hdb -name "dif*" -ctime +7 -exec rm -f {} ";"

ou

2 - no script escreva
echo "find $DSTDIR -name "dif*" -ctime $TIME_DEL -exec rm -f {} ";""
e verifique o que ele imprime
Confira pra ver se o codigo esta ok!

Se o código estiver ok e ele não estiver executando deve ser por que os arquivos que vc esta criando estão com a data muito recente ( menos de 7 dias de existencia), para testar isso use o comando touch para cria-los com data antiga, mais detalhes nesse link http://www.vivaolinux.com.br/dicas/verDica.php?codigo=7772

Ou altera a data do ctime de +7 para +1 ou -1 para fazer o inverso

Abraço precisando de algo grite
flw

[14] Comentário enviado por agimenez em 27/02/2008 - 22:52h

Valeu cara, consegui resolver, o meu problema era o "dif*"... é o mal do ctrl+c / ctrl+v ... eu acrescentei esse trecho do seu código e não adaptei ao meu... mais uma vez.. Parabéns! Abraço!

[15] Comentário enviado por bellafronte em 28/02/2008 - 10:25h

Muito bom veiodruida, muito util, estava precisando de algo bem funcional como voce criou, parabéns!

[16] Comentário enviado por f9informatica em 03/03/2008 - 19:32h

Meu caro veiodruida, antes de qualquer coisa gostaria de parabeniza-lo pela dica e pela dedicao ao linux e interesse em ajudar a comunidade.

Me ajude por favor meu amigo. É o seguinte uso o SUSE 9.3 e estou precisando implementar uma rotina de backup e quando vi sua solucao meu olhos brilharam rsrsr é que nao tenho muita experiencia com scripts e pensei em implementar suas rotinas aqui.

Consegui com sucesso implementar a rotina de backp full inclusive pegando backups de particoes NTFS. Tudo fino e funcionando inclusive com agendamento no cron.

Mas quando tento implementar a sua rotina de backup diferencial da um erro sobre esse comando find tentei aplicar a dica que vc deu ao agimenez mais nao deu certo.



Rildo Santos
f9informatica arroba gmail com

[17] Comentário enviado por JhoniVieceli em 04/03/2008 - 11:48h

Opa!

Primeiro obrigado por gostar do artigo fico feliz valeu mesmo!

Antes quero saber qual extamente é o erro que esta acontecendo, mas mesmo assim vou te mostar como depurar o find.

Tente aplicar um find simples assim:

find /mnt/hdb -name "dif*"

onde mnt/hdb é a partição e dif* é todos os arquivos iniciados com essa palavra, claro só vai retornar resultado se esses paramentros forem atendidos. pode mudar dif* pra qualquer outra palavra só de teste.
deu certo?

bem se deu tente depois
find <particao> -name "<nome do arquivo>" -ctime +14

e veja se ele lista arquivos mais antigos do que 14 dias sendo que vc pode substituir por outro valor no mais (ex: +30)
deu certo?

bem se deu tente
find <particao> -name "<nome do arquivo>" -ctime +14 -exec ls -la {} ";"

Agora através da lista (ls -la) ele vai mostrar as permissões dos arquivos, 1 por 1 se deu certo até aqui jóia!

agora substituia a expressão de teste que a gente criou pela original do programa e vá depurando por partes pra ver o que acontece

Valeu

Abraço

[18] Comentário enviado por esgol em 22/03/2008 - 11:39h

Caro veiodruida,
No Backup diferencial tá dando o erro:
find: argumento inválido `-exec' para `-cmin'
provavelmente o mesmo do f9info mas a sintaxe parece estar ok, o que pode ser?
Abraços.

[19] Comentário enviado por JhoniVieceli em 24/03/2008 - 13:50h

Opa!

Cara provavelmente o teu find não deve ter alguns dos comandos que eu coloquei aqui como parâmentro.

Faz o seguinte da um "$man find" no console e veja se aparece os comandos -exec e -cmin. Verifique também se as variáveis estão corretas se você preencheu elas corretamente com valores que vc quer.


Se sim tente o seguinte. No lugar das variáveis coloque valores absolutos.
EXEMPLO:
find $DSTDIR -name "dif*" -ctime $TIME_DEL -exec rm -f {} ";"
COLOQUE NO CONSOLE ASSIM
find <dir de destino> -name "dif*" -ctime <tempo existe backup> -exec rm -f {} ";"
TRADUZINDO:
find /var/backups -name "dif*" -ctime +14 -exec rm -f {} ";"

Isso claro se vc estiver fazendo backup no diretorio /var/backups

Qualquer dúvida é só postar

vlw

Jhoni Vieceli

[20] Comentário enviado por slackjackson em 24/03/2008 - 16:48h

veiodruida, eu estava com o mesmo erro de "esgol", mas o meu era na seguinte linha: "find $SRCDIR -type f -cmin $TMP_FIND -exec tar -rvf $ARQ {} ";"" na hora de criar o arquivo de backup e não na hora de excluir, então eu vi q no script ñ existe a variável "TMP_FIND" e sim "TIME_FIND", fiz a substituição e parou de dá erro. ai apareceu outro problema, ele salva o arquivo de backup, mas dentro dele ñ tem nd, ele fica completamente vasio.

cara o script tah muito bom e me ajudando muito...me dá uma força ai.

vlw

[21] Comentário enviado por JhoniVieceli em 25/03/2008 - 11:42h

-----------ATENÇÃO!!!!! BUG NO SCRIPT DE BACKUP DIFERENCIAL----------

Coloquei uma variável que não existe no código do Backup Diferencial, a váriavel é a $TMP_FIND, isso pode estar causando erros como esse
"find: argumento inválido `-exec' para `-cmin'"
o código com erro é esse:
find $SRCDIR -type f -cmin $TMP_FIND -exec tar -rvf $ARQ {} ";"

Para CORRIGIR!
cole esse código a seguir com a variável correta! ($TIME_FIND) no lugar do código find anterior
find $SRCDIR -type f -cmin $TIME_FIND -exec tar -rvf $ARQ {} ";"

Peço desculpa a todos por esse erro, acabei mandando um script de versão anterior a final pro VOL que continha esse BUG sem querer.

Slackjackson quanto ao seu problema verifique lá no inicio do código se a variável $SRCDIR esta preenchida corretamente (com espaços entre os diretórios e com aspas duplas fechando). Se ainda estiver dando erro tente colocar o nome do diretório diretamente no local sem usar variavel isso pode resolver o problema.
Exemplo:
find /home/usuario -type f -cmin $TIME_FIND -exec tar -rvf $ARQ {} ";"

Obrigado e desculpa pelo pequeno erro e qualquer coisa posta de novo que vou ajudando na medida que eu puder

Abraço a todos

Valeu!

[22] Comentário enviado por ricardoas30 em 20/12/2008 - 17:53h

Olá colega, gostaria de parabeniza-lo com os scripts. Estou com um probleminha. quando ele gera o arquivo ele não está gerando correto. ele gera assim: full-17-12-2008- não coloca a extensão e me parece que não finaliza a geração do arquivo deixando corrompido.

Estou utilizando o script do backup_full.sh

Gostaria de saber se é algum tipo de BUG ou se for reporta-lo.

Obrigado !

[23] Comentário enviado por ricardoas30 em 05/04/2009 - 08:22h

Acredito que resolvi o problema relatado do comentário 22 do dia 20/12/2008.

Eu modifiquei o seguinte comando abaixo do scripf backup_full:

Antigo:
DATA=`date +%x-%k%M%S` #pega data atual

Atual:
DATA=`date +%x` #pega data atual

Quando estava imprimindo -%k%M%S a hora do backup ele não gerava o arquivo corretamente, e quando eu o removi, pronto agora está OK.

Valeu comunidade...

[24] Comentário enviado por lsilveira em 21/05/2009 - 12:04h

tar: /root/backup-full-05/21/09.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
tar: Removing leading `/' from member names

o meu ta dando esse erro


www.hubstore.com.br

[25] Comentário enviado por pecelo em 26/05/2009 - 09:35h

para lucasSA
vc tem que mudar o comando date, ele esta no formato com "/", o bash esta procurando diretorios /21/09.tar.gz mas o diretorio /21 não existe, isso no seu caso!mude para "date +%d-%m-%y" e tdo funcionara bem

Marcelo

[26] Comentário enviado por malsi2 em 08/07/2009 - 21:57h

cara, muito boa ideia !!! codigo limpo e bem comentado... é isso ai !!!
ja fiz os 4 scripts funcionar aqui com algumas adaptações para o meu uso tipo nome dos arquivo, diretórios etc... esta funcionando perfeitamente. gostaria de sua opnião quanto ao agendamento desse backup, qual a frequencia que vc acha legal de usar cada um dos scripts, essas coisas ?
no mais, parabéns mesmo pelo código !
um abraço a todos do vol !

[27] Comentário enviado por jgama em 10/07/2009 - 00:13h

Mesmo trocando a forma de data no script backup_diferencial para

DATA=`date +%d-%m-%y`

Quando executo o script ainda aparece estas linhas abaixo:

root@firewall1:/usr/bin# sh /usr/bin/_backup_diferencial.sh
Programa de Backup Diferencial

Data de inicio: Thu 09 Jul 2009 11:35:23 PM BRT
tar: Removing leading `/' from member names
/etc/random-seed
tar: Removing leading `/' from member names
/etc/adjtime
tar: Removing leading `/' from member names
/etc/motd
tar: Removing leading `/' from member names
/etc/gtk-2.0/gtk.immodules
tar: Removing leading `/' from member names
/etc/mtab
tar: Removing leading `/' from member names
/etc/ld.so.cache
tar: Removing leading `/' from member names
/chroot/named/var/run/named.pid
tar: Removing leading `/' from member names
/chroot/named/named.run
--------------------------------------
Backup Diferencial concluído com sucesso
Data de termino: Thu 09 Jul 2009 11:35:23 PM BRT

Log gerado em /var/log/backup_diferencial.log
Arquivo de backup mais antigo eliminado com sucesso!
Script de compactação
Data de inicio: Thu 09 Jul 2009 11:35:23 PM BRT
Compactação concluída
Data de termino: Thu 09 Jul 2009 11:35:23 PM BRT
Compactação concluída
Log gerado em /var/log/backup_compactacao.log

O script executa com sucesso, mas como faço para deixar limpo sem esta informações:
tar: Removing leading `/' from member names


Abraço

[28] Comentário enviado por JhoniVieceli em 10/07/2009 - 10:10h

TETEU Obrigado por ter gostado do código, sei que ele nao ta lá aquelas coisas mas ja da uma mão para quem não tem nenhum esquema de backup...

Quanto ao esquema do agendamento do backup, acho que isso é dificil de definir uma padrão, ja que isso pode mudar de cliente para cliente.

Em clientes com pouca massa de dados, eu recomendo:
Backup full seja feita uma vez por semana, na madrugada de sexta para sabado ou no sabado, ao terminar esse backup, ter uma planilha de controle e anotar a data e o nome de quem fez o backup. Em alguns casos em usei HD externo usb e embaixo do hd colei um papel com uma pequena planilha, para registros de backup. Porém nada impede de ser feito backup full todo dia como falei isso depende do nivel de dados e dos recursos que vc tem (hds, midia, storage etc...)

Gosto do backup diferencial durante a semana em lugar do incremental, pois com o incremental se for perdido um dos backups c ta ferrado.rsrsrsr mas como falei isso depende da sua politica de backup.

No backup diferencial, o agendamento dele é relativo a massa de dados movimentada na empresa, pode ser feito de hora em hora ou no fim do dia. Dependendo interessante adotar um backup as 12:00 e outro as 18:00 no fim do expediente. Esses backups podem ser gravadas em midias dvd-rw ou em hd externo mesmo, um para cada dia da semana.

O tempo que ficará quardado o backup depende também, eu geralmente deixo o full quardado por 1 mês e depois reaproveito a midia (hd externo ou outra qualquer).

Outro ponto importante é que o backup deve ficar em lugar seguro, se ficar na empresa quardar em cofre corta-fogo, de preferencia uma copia do backup deve ser levada para casa do responsavel pelos dados (dono, gerente etc...), em algumas empresas todo dia o gerente quarda uma copia do backup no cofre e outra ele leva embora, e o full durante o fim de semana também é feito o mesmo.

Como observação final recomendo ter tudo isso em historico, e que também periodicamente seja quardado os dados da empresa em midias que nao serão apagadas, caso todo o resto falhe...

Valeu pelo comentário e espero ter ajudado

Jhoni Vieceli

[29] Comentário enviado por JhoniVieceli em 10/07/2009 - 10:23h

A mensagem do tar: Removing leading `/' form member names é exibida porque você não está no mesmo diretorio onde os arquivos serão criados.

Eu recomendo que para a mensagem nao aparecer a saida de erro seja redirecionada através do 2> por exemplo:

$find / -name s*.jpg 2>/dev/null

Mais sobre http://www.codecoffee.com/tipsforlinux/articles2/042.html

Valeu

Jhoni Vieceli

[30] Comentário enviado por danueli em 08/03/2010 - 14:54h

olá.

Sei que faz tempo este post.

mas encontrei isto agora só que não está a funcionar.

isto sao as minhas configurações (porque quando formatei os discos um deles ficou como directoria /backups e com flag de arranque)

HD_O=/dev/sdb5
HD_MTD=/backups

quando digito 1 (para restaurar o full) e depois hd

responde-me:
mount: /dev/sdb5 already mounted or /backups busy
mount: according to mtab, /dev/sdb5 is already mounted on /backups
total 8
drwxr-xr-x 2 root root 4096 2010-03-08 18:06 .
drwxr-xr-x 3 root root 4096 2010-03-08 18:06 ..
Qual a data do arquivo que quer restaurar? (dd-mm-aaaa)

digito a data que criei o fullbackup.

e responde-me novamente:
------------------------------------------------------
ATENÇÃO: FALHA na tentativa anterior tente novamente
------------------------------------------------------


alguém me consegue a "abrir os olhos" com isto?

Abraços.

[31] Comentário enviado por danueli em 11/03/2010 - 08:58h

já está a funcionar! :)

obrigado veiodruida

[32] Comentário enviado por danueli em 15/03/2010 - 08:24h

éé... outro problema.. executando o script manualmente funciona

mas em crontab no log dá erro. :| o cron esta correto.

o que será? =|

Dá-me a entender que no cron ele nao detecta que é o user root que o está a fazer. mas está, porque segundo cron ao nao definir utilizador, assume o root.

[33] Comentário enviado por jorgeeb4 em 04/04/2010 - 18:09h

Caro danueli, pergunto se encontrou alguma solução para execução do scrip pelo cron?
Tenho o mesmo problema, e realmente o erro ocorre por que o scrip não consegue identificar o usuário que o esta executando.

[34] Comentário enviado por jhapa_rc em 28/07/2010 - 08:37h

pessoal estou como mesmo problema do jorgeeb4 e danueli...
manualmente o backup funciona, mas no cron da erro....
alguem sabe a solucao??

[35] Comentário enviado por green-tec em 25/09/2010 - 12:23h

Estava vendo esse script de backup, muito bom por sinal... e lendo os posts de problemas e duvidas.. e sobre a questão de o backup funcionar no manual e no cron não rodar, se me permite dizer, é que o script do jhoni possui saida para tela, para vermos o andamento do backup e esse tipo de saida costuma dar problema no agendamento do cron..tira essa saida e testa para ver..

abraços

[36] Comentário enviado por gutuffy em 27/09/2010 - 20:39h

Mesmo tirando o comando echo, não funcionou.

Alguém tem alguma outra sugestão?
Manualmente funciona o script, porém no crontab não roda.

valeu.

[37] Comentário enviado por sano brujah em 19/10/2010 - 13:51h

Cara, meus parabéns, sem comentários, muito bom mesmo.

[38] Comentário enviado por GRAO_RJ_777 em 01/09/2011 - 01:03h

pra mim o backup full funcionou com excessão do ultimo laço if

if [ $? -eq 0 ] ; then
echo "Arquivo de backup mais antigo eliminado com sucesso!"
else
echo "Erro durante a busca e destruição do backup antigo!"
fi
}

que só esta retornando a menssagem "Arquivo de backup mais antigo eliminado com sucesso" mesmo quando ele deleta arquivos.

Alguma sugestão?

Abs.

[39] Comentário enviado por wellingtonmg em 08/09/2011 - 23:22h

find $Diretorio -name "f*" -atime +20 -exec rm -f {} ";"

No meu funcionou com este comando....muito bom!!!

Vlw

[40] Comentário enviado por cainf em 10/11/2011 - 16:10h

No meu funcionou e gostaria de fazer a seguinte pergunta
Sempre crio pastas para cada usuário /home/nome_usuario

Gostaria de fazer um backup de cada pasta de cada usuario por exemplo

/arquivo/backup/joao.tar.gz /home/joao
/arquivo/backup/maria.tar.gz /home/maria

Porém ao excluir um usuário que é o caso de um desligamento da empresa o sistema verificar quais pastas estão dentro do home sendo assim não preciso realizar um backup geralzao do home e cada usuario ter a sua pasta compactada diminuindo e muito o tempo de restauração e tb não vou precisar acrescentar ou deletar pastas que forem criadas ou deletadas dentro do home

um grande abraço a todos


[41] Comentário enviado por splendide em 26/12/2011 - 14:36h

Primeiro parabéns pelo script e contribuição!

Tenho uma dúvida, esse tipo de backup feito não seria incremental ?
Pois é feito backup só dos arquivos que mudaram em relação ao dia anterior.


Pelo que sei o diferencial é feito em relação ao "backup full".

[42] Comentário enviado por luizquerino em 03/02/2012 - 09:25h

Bom dia primeiro post no VOL kk'
Preciso de uma dica, o script é incrível consigo usar normalmente manualmente, mais eu gostaria de alguma dica de como automatizar essa função para que seja feita todos os dias as 7:00 ao 12:00 as 19:00 e as 00:00.
Eu tentei usar o Cron mais não funcionou esta dando um erro.

Se alguém puder me ajudar agradeço muito.

[43] Comentário enviado por joserf em 04/03/2012 - 14:06h

ja tem alguma versao mais nova para postar pra gente ? belo artigo.

[44] Comentário enviado por firewallsp em 19/06/2012 - 20:16h

Cara muito bom mesmo, me livrou a cara este script, já implementei no meu server...muito bom...roda blzinha...mas queria um esquema de envio de e-mail...teve um colega que fez um mas não roda..teriam alguma dica..

abs

Parabéns pelo script e dedicação...

[45] Comentário enviado por jarlisson em 24/07/2012 - 10:21h

É mais versáril que incrível Juice Phlips Wallita.
Ja pensou em vender pra Polishop? :D

[46] Comentário enviado por marcelopkamanski em 16/11/2012 - 17:35h

boa tarde gente sou novo no forum, usei como base esse script para backup + fiz algumas mudanças conforme a utilizacao na empresa onde eu trabalho, estou com o seguinte problema...quando eu executo o script manualmente, o mesmo roda e realiza o backup conforme a configuracao que fiz, mas se eu configurar para que o crontab execute o backup programado, o backup não é realizado, mas no log do backup"/var/log/backup_diferencial.log" ele aparece que foi realizado com sucesso, mas quando é verificado na pasta de onde fica o backup, o arquivo nao existe, e nao sei o que pode ser acontece, pq o arquivo nao gera quando é programado, so gera somente quando o backup é executado manualmente. fico no aguardo...

crontab
00 12 * * * root /script/diferencial_backup.sh

[47] Comentário enviado por euedialves em 10/04/2013 - 16:00h

Cara muito bom seu script, obrigado.

Estou usando o script e quando rodo manualmente funciona de boa.
quando agendo no crontab, como teste agendei um por minuto de um diretório pequeno.

ele passa direto para o else e printa "Erro durante a busca e destruição do backup antigo!"

sabe me dizer porque?

[48] Comentário enviado por removido em 12/12/2014 - 15:09h

Massa. To fazendo um backup aqui no HD externo. Só alterei o formato da data. Quando ela estava com o x dd/dd/dd ele estava confundindo o / com outro diretório. Ai troquei pelo %F dd-dd-dd. Funfou está rodando aqui.

[49] Comentário enviado por marciosystens em 11/09/2015 - 13:12h


Muito boa a explicação!

E se eu quiser adicionar informação à saida do comando?

Por exemplo: Vou criar um arquivo de backup dos meus arquivos e salvar a lista dos arquivos tratados, com a data/hora e caminho do arquivo:

#Aqui salva a lista de arquivos compactados pelo tar
user@debian:~$ tar -czvf /etc /mnt/backup >> /var/log/backup.log

Parte do conteúdo de backup.log:
/etc/calendar/
/etc/calendar/default
/etc/chatscripts/
/etc/chatscripts/provider

O que eu gostaria que tivesse:
[ Máquina | usuario | data hora] <saída comando>
[debian | user | 11-09-2015 12:08:45] /etc/calendar/
[debian | user | 11-09-2015 12:08:45] /etc/calendar/default
[debian | user | 11-09-2015 12:08:46] /etc/chatscripts/
[debian | user | 11-09-2015 12:08:46] /etc/chatscripts/provider

[50] Comentário enviado por AndreBatista96 em 22/04/2016 - 16:00h

Boa tarde Comunidade!

Sei que o script é antigo, mas me ajustou muito!

Fiz algumas alterações para o ambiente aqui da empresa, muito obrigado JhoniVieceli

[51] Comentário enviado por analysis em 25/04/2018 - 20:57h

Ola, implementei o backup full, ao executar ocorre o erro tar: Removing leading `/' from member names, ja pesquise tentei -C /, mais não vai.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts