script de backup com log [RESOLVIDO]

1. script de backup com log [RESOLVIDO]

Efraim Huerta Araujo
maremotosete

(usa FreeBSD)

Enviado em 30/06/2011 - 19:21h

Inicialmente agradeço a paciencia e ajuda de todos, seguinte estou criando um script de backup de uma pasta de banco de dados, aonde ele realiza a copia da pasta do banco de dados do Postgres, soque eu preciso implementar um log que se o backup nao for executado corretamente ele gere um log de erro mensionando o erro, tipo se a pasta nao copiar ou ate mesmo caso ele falhar a copia ele gere este log debugado informado se possivel a causa e origem da causa, pois preciso enviar este erro por email para os admnistradores do banco aonde poderao pelo menos receber oerro e tomar as devidas providencias, agradeço desde ja a compreenção e aguardo retorno ok.


  


2. Re: script de backup com log [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 30/06/2011 - 22:41h

Dentro do seu script você poderia colocar alguns
HOJE=`date +%d%m%Y`
ARQUIVO_LOG="/opt/log/meu_log_$HOJE.txt"

echo "Não conseguiu copiar" >> "$ARQUIVO_LOG"

Ai faça várias mensagens que deseja colocar no seu LOG e coloque algo como fiz acima:

echo "Mais informações de log......." >> "$ARQUIVO_LOG"


Coloque nos seus if ....else...


Abraços




3. Re: script de backup com log [RESOLVIDO]

Efraim Huerta Araujo
maremotosete

(usa FreeBSD)

Enviado em 16/07/2011 - 20:17h

Primeiramente obrigado amigo rai3mb , depois nao consegui implementar por exemplo erro de copia pois nao sei a rotina de execução do processo para que quando de erro dde copia ele gere o log de erro de copia, ou ate mesmo quando é que ele vai entender que por exemplo a copia esta corronpida? o processo de copia por um acaso quando a copia fica corronpida ele apresenta algum erro natual aonde possa gerar tal erro, ou teria de alguma forma fazer uma analize no banco para vereficar a integridade e so assim poderiamos implementar o rro, nao sei se expliquei bem mas agaudo a resposta obrigado.


4. Re: script de backup com log [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 16/07/2011 - 20:27h

Desde o dia que postei aquela solução, acabei encontrando outra bem melhor, veja

#!/bin/bash
# Habilita log copiando a saída padrão para o arquivo de log
exec > >(tee -a log.txt)
# faz o mesmo para a saída de ERROS
exec 2>&1

# apebas para exemplo
cat algumacoisa

--------------
Resultado no arquivo log.txt:
cat: algumacoisa: No such file or directory


Ok, com isso você vai poder coletar a saída de erro de um script para um arquivo, e basta definir as linhas no início do arquivo, não precisa especificar no restante do código.

Abraços




5. pergunte ao bash

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/07/2011 - 00:53h

Para validar a saída de qualquer comando vc pode perguntar ao bash se o resultado foi positivo.
Eu uso bastante isso nos scripts, pois temos a certeza de que o comando foi executado com sucesso. Já vi mtos scripts com varios comandos sem validação e se o usuario nao percebe pode-se gerar falso/positivo. Ele pensa q a tarefa foi realizada, mas na verdade nao foi, pois o script nao foi bem trabalhado.

O comando "echo $?" pergunta ao bash qual foi o último comando executado, se o retorno for 0 (zero) ocorreu perfeitamente, se o resulado for diferente de 0 (zero) o comando nao foi executado corretamente.

Exemplo:

cp -p file.txt /opt/bkp_system/
if [ $? -eq 0 ]; then

echo "Cópia realizada com sucesso"

else

echo "Erro ao realizar a cópia"

fi


E assim é só seguir a lógica pra todos os comandos existentes no universo shell!!


6. Re: script de backup com log [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 17/07/2011 - 01:12h

"quando é que ele vai entender que por exemplo a copia esta corronpida? o processo de copia por um acaso quando a copia fica corronpida ele apresenta algum erro natual aonde possa gerar tal erro, ou teria de alguma forma fazer uma analize no banco para vereficar a integridade e so assim poderiamos implementar o rro,..."

Pois é, como o colega acima falou temos a variável $? que armazena o valor de retorno do ultimo processo executado, caso tenha sido executado com sucesso é armazena o valor 0 (zero) caso tenha dado erro, armazena o valor 1 (um).

Não coloquei essa validação no primeiro script porque pensei que você já sabia :-).

O segundo script vai ajudar a deixar seus logs mais robustos, podendo armazenar tanto a saída de erro como algo que você mostrou na tela ao executar o script.

Abraços


7. checksum ou md5sum

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/07/2011 - 02:03h

Bom, para validar a cópia com toda certeza você poderia verificar a integridade dos arquivos com checksum ou md5sum. Servem para calcular a soma de verificação dos dados. Vc pode verificar se a saída do comando são as mesmas para ambos os arquivos, o "original" e o "copiado".

Para verificar digite: md5sum arquivo

A lógica do script é fácil, tire o md5sum de ambos os arquivos e depois faça um teste de igualdade com if.

Coloque em variáveis para ficar mais claro e manda bala:

if [[ "$arquivo_1" == "$arquivo_2" ]]; then

echo "Integridade dos arquivos está OK. Cópia realizada com sucesso"

else

echo "Diferença na integridade dos arquivos. Cópia não realizada com sucesso"

fi


Este é o modo mais perfeito existente no universo shell que conheço!


8. script de backup com log

Efraim Huerta Araujo
maremotosete

(usa FreeBSD)

Enviado em 19/07/2011 - 23:56h

Teriam como me ajudar ainda sou novo mas la vai, este pedaço e de um script que ja foi feito mas esta implementado, no final do resultado adiciono os creditos

DEST="/usr2/backup/sistema/"
BKP="tar zcfv"
NOME="$SEM$DATARQ.bancodedados_$HOST.tar.gz"
LOCAL="/usr/banco"

# Parametros de configuracao de envio resultado de backup por E-mail
MailTo=maremotosete@gmail.com
MailSubject="Backup $NOME gerado do servidor $HOST"

# Loga
MENSOK="echo Backup criado com sucesso em $DEST Nno dia $DATA as $HORA"
ERRONONE="echo Backup não executado, arquivo em $LOCAL não encontrado, favor vereficar."
ERRODONE="echo Backup executado mas corronpido, arquivos danificados, favor vereficar."

LOCLOG="/usr2/backup/log/bkp.log"

# Debug_log
if [ $? -eq 0 ]; then
MENSOK
else
ERRODONE
fi

# Verifica o dia da semana, exclui o bkp da semana passada,
if [ "$DIA" = 1 ]; then
#Remove o arquivo criado na segunda passada
rm $DEST/Mon*
cd $DEST
#cria o bkp do dia e loga
$BKP $NOME $LOCAL
$MENSOK >> $LOCLOG
else
if [ "$DIA" = 2 ]; then

so que alem de tratar se o arquivo foi copiado com sucesso ou nao ainda teria que enviar peo email o resultado posistivo ou nao, e alem disso tambem efetuado um log quando efetuar a exclusao semanal, preciso isso para gerenciar mutos backps de bancos de varios servidores , estou no caminho certo?


9. Re: script de backup com log [RESOLVIDO]

Efraim Huerta Araujo
maremotosete

(usa FreeBSD)

Enviado em 27/07/2011 - 16:10h

Ok turma obrigado memso me ajudaram bastante, vou fazer alguns scrips e posto aqui prometo ok vlws.


10. Script de backup customizado e parametrizado.

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 15/09/2011 - 23:11h

maremotosete escreveu:

Ok turma obrigado memso me ajudaram bastante, vou fazer alguns scrips e posto aqui prometo ok vlws.


Vamos por partes ?

Vou passar a forma como aprendi e que na minha visão está dando muito certo.

1º Faça uma mapeamento do que precisa ser realizado pelo seu script. (neste momento não importa se você sabe ou não os comandos. Coloque o que precisa ser feito, quando e porque.)
2º Coloque no cabeçalho inicial as etapas que serão construídas. ( Em ordem lógica se possível)
3º Tudo que tiver algum tipo de repetição será candidato a virar uma função. Não importa se vai ser duas ou três vezes.
4º Procure fazer cada etapa funcionar em separado em micro scripts. Muitas vezes em um único comando e vá adicionando as funcionalidades.
5º Não tenha medo de perguntar. Sempre que fizer, procure mostrar o código que está construindo.
6º Procure sempre que possível na seção de scripts exemplos similares e procure aproveitar o que o pessoal já fez customizando para suas necessidades.

Neste caso, existem vários exemplos de scripts de backups para todos os gostos. Realmente há muitas formas de executar e de salvar. Até onde pude ver, todas as necessidades que você colocou já estão presentes em vários scripts. Que tal ir fazendo um passo a passo em conjunto ?
Abra um tópico no forum tipo construindo script de backup com log e vamos fazer um roadmp sobre ele e procurar generalizar e ao mesmo tempo customizar da melhor forma possível ?

[editado]
Estou sempre monitorando e colocando dúvidas e soluções neste forum genérico: http://www.vivaolinux.com.br/comunidade/Shell-Script
[/editado]








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts