Função não Funciona [RESOLVIDO]

1. Função não Funciona [RESOLVIDO]

Bruno Simões
brunomoita

(usa Debian)

Enviado em 23/07/2008 - 10:22h

Bom dia pessoal,

Seguinte, desenvolvi o script de backup abaixo:

# Script de Backup
# Desenvolvido po Bruno Simoes
# Ultima alteracao em 07/07/2008

#!/bin/bash

#variaveis para esse script de backup
DATE=`date +%Y-%m-%d-%H.%M`
ARQUIVOTAR="/backup/backup_diario/bkp-$DATE.tar.gz"
GROWISOFS="/usr/bin/growisofs"
TAR="/bin/tar"
DVDFORMAT="/usr/bin/dvd+rw-format"
DVD="/dev/hdc"
RMPATH1='/home/lxn-linuxplacelixo'
RMPATH2='/home/zope2'
RMFILES='rm /backup/backup_diario/*.tar.gz'
SQLDUMP='/usr/bin/mysqldump -u backup -pbrunos dotproject'
SQLBKP='/backup/backup_sql/dotproject.sql'
LOGBKP='/backup/backup_diario/logbkp.log'
LOGTAR='/backup/backup_diario/logtar.log'
LOGCOPIA='/backup/backup_diario/logcopia.log'
LOGFIM='/backup/backup_diario/logfim.log'
MAIL='brunosimoes@gmail.com'

ls /backup/

# FUNÇÃO DE TESTE DE ERROS
testaerro()

{
if [ $? -eq 0 ]; then
echo "@@@ OPERAÇÃO EFETUADA COM EXITO @@@" $1 >> $LOGFIM
else
echo "*** ERRO AO EXECUTAR A OPERAÇÃO ***" $1 >> $LOGFIM
fi
}

# CBEÇALHO DO ARQUIVO DE LOG (1)
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "### ARQUIVO DE LOG DO DIA $DATA ###" >> $LOGBKP

#Remove backups anteriores
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "$DATE :### REMOVENDO BACKUPS ANTERIORES ###" >> $LOGBKP
$RMFILES >> $LOGBKP 2>&1
testaerro

# FORMATAÇÂO DA MÌDIA
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "$DATE :### FORMATAÇÃO DO DVD ###" >> $LOGBKP 2>&1
echo "$DATE :$DVDFORMAT -force $DVD" >> $LOGBKP 2>&1
$DVDFORMAT -force $DVD >> $LOGBKP 2>&1
testaerro

# BACKUP DAS TABELAS SQL
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "#$DATE :## BACKUP DAS TABELAS SQL ###" >> $LOGBKP 2>&1
$SQLDUMP > $SQLBKP 2>> $LOGBKP
testaerro

#COMPACTAÇÃO DO ARQUIVOS
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "$DATE :### INICIO DA COMPACTAÇÃO EM $DATA ###" >> $LOGTAR 2>&1
echo "$DATE :$TAR cvzf $ARQUIVOTAR -T /backup/rotinas/diretorios --exclude=$RMPATH1 --exclude=$RMPATH2" >> $LOGTAR 2>&1
testaerro

#COPIA DOS ARQUIVOS
date +%Y-%m-%d-%H.%M
DATE=`date +%Y-%m-%d-%H.%M`
echo " "
echo "$DATE :### INICIO DA CÓPIA EM $DATA ###" >> $LOGCOPIA 2>&1
echo "$DATE :$GROWISOFS -speed=2 -Z /dev/hdc -J -R $ARQUIVOTAR" >> $LOGCOPIA 2>&1
$GROWISOFS -speed=2 -Z /dev/hdc -J -R $ARQUIVOTAR >> $LOGCOPIA 2>&1
testaerro

mail $MAIL -s BACKUP < $LOGFIM

-------------------------------------------------------------------------

Alterei algumas linhas pra ficar errado e saber se iria receber um e-mail reportando o erro, porém recebi a mensagem que configurei para o caso de acerto. Alguém consegue ver o porque disso ter acontecido?


  


2. Resumindo ...

Bruno Simões
brunomoita

(usa Debian)

Enviado em 23/07/2008 - 15:13h

Quero achar o erro na função abaixo:

# FUNÇÃO DE TESTE DE ERROS
testaerro()

{
if [ $? -eq 0 ]; then
echo "@@@ OPERAÇÃO EFETUADA COM EXITO @@@" $1 >> $LOGFIM
else
echo "*** ERRO AO EXECUTAR A OPERAÇÃO ***" $1 >> $LOGFIM
fi
}



3. Re: Função não Funciona [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 24/07/2008 - 01:36h

Execute o seu script em modo debug! Assim fica "facim" encontrar os erros que estão ocorrendo.

% bash -xv script.sh




4. Tá funcionando!!!

Bruno Simões
brunomoita

(usa Debian)

Enviado em 24/07/2008 - 10:35h

Valeu a dica SMarcel, ela ajudou a ver que a mensagem de erro estava sendo gerada, porém estava indo para o fim do corpo do e-mail, e a visualização estava complicada.

Então mesmo que o script estivesse funcionando, ficou um alerta para fazer implementações.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts