Saida de erro terminal para Arquivo. [RESOLVIDO]

1. Saida de erro terminal para Arquivo. [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 12/05/2016 - 11:00h

Bom dia,em meu script que mencionarei abaixo executo um backup de uma base de dados.São programados via cron,estou configurando para que em caso de erro seja enviado via e-mail,porem preciso identificar onde esta o erro.
como posso jogar para o arquivo somente o erro?Executando no terminal "simulando erro" aparece o erro,mas no log eu preciso dessa Saida...

script:
#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Backup de base de dados iniciado em: $DIAMESANO as $HORAMINUTO " > /home/dados/logbackup_manha.txt


if /opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk


then

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")


echo " Backup de base de dados realizado com sucesso em: $DIAMESANO as $HORAMINUTO " >> /home/dados/logbackup_manha.txt

else

echo " Ocorreu algum erro durante execucao do Backup,contate o Suporte " >> /home//dados/logbackup_manha.txt

fi

OBS: se alguem souber as linhas de comando para incluir nesse script o envio por email, agradeço.ja preparei o server com as necessidade do email,porem esotu em processo de criaçao do script.


  


2. Re: Saida de erro terminal para Arquivo.

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 12/05/2016 - 11:36h

Tem que testar, mas é algo assim a expressão.

/opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk
if [ $? -eq 1 ]; then
# Com erro
else
# Sem erro
fi



3. Re: Saida de erro terminal para Arquivo. [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 12/05/2016 - 11:55h

Williamm escreveu:

Tem que testar, mas é algo assim a expressão.

/opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk
if [ $? -eq 1 ]; then
# Com erro
else
# Sem erro
fi



Perdoe-me a falta de conhecimento,me retornou o erro:
backup.sh: 11: backup.sh: Syntax error: "else" unexpected

apena inclui a linha mencionada.


#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Backup de base de dados iniciado em: $DIAMESANO as $HORAMINUTO " > /home/dados/logbackup_manha.txt


if /opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk
if [ $? -eq 1 ]; then
# Com erro
else
# Sem erro
fi


then

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")


echo " Backup de base de dados realizado com sucesso em: $DIAMESANO as $HORAMINUTO " >> /home/dados/logbackup_manha.txt

else

echo " Ocorreu algum erro durante execucao do Backup,contate o Suporte " >> /home//dados/logbackup_manha.txt

fi




4. Re: Saida de erro terminal para Arquivo. [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 12/05/2016 - 11:58h

Algo assim..


#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Backup de base de dados iniciado em: $DIAMESANO as $HORAMINUTO " > /home/dados/logbackup_manha.txt


/opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk
if [ $? -eq 1 ]; then
# Com erro
echo " Ocorreu algum erro durante execucao do Backup,contate o Suporte " >> /home//dados/logbackup_manha.txt
else
# Sem erro
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")


echo " Backup de base de dados realizado com sucesso em: $DIAMESANO as $HORAMINUTO " >> /home/dados/logbackup_manha.txt
fi



5. Re: Saida de erro terminal para Arquivo.

natha
ncampos

(usa Debian)

Enviado em 12/05/2016 - 12:09h

Williamm escreveu:

Algo assim..


#!/bin/bash

DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Backup de base de dados iniciado em: $DIAMESANO as $HORAMINUTO " > /home/dados/logbackup_manha.txt


/opt/firebird/bin/gbak -b -user SYSDBA -password senha /home/dados/base.fdb /home/dados/base_backup.fbk
if [ $? -eq 1 ]; then
# Com erro
echo " Ocorreu algum erro durante execucao do Backup,contate o Suporte " >> /home//dados/logbackup_manha.txt
else
# Sem erro
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")


echo " Backup de base de dados realizado com sucesso em: $DIAMESANO as $HORAMINUTO " >> /home/dados/logbackup_manha.txt
fi



Agora gerou o backup,porem simulando o erro a saida abaixo nao foi para o logbackup_manha.txt ,consta no log apenas ( Backup iniciado em: 12/05/2016 as 12:06:24 Ocorreu algum erro durante o Backup! ).

Erro no terminal que deve ir par ao log:
gbak: ERROR: I/O error for file "/home/dados/base.fdb"
gbak: ERROR: Error while trying to open file
gbak: ERROR: No such file or directory
gbak: Exiting before completion due to errors







6. Re: Saida de erro terminal para Arquivo. [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 12/05/2016 - 15:11h

Obrigado pela ajuda,
Consegui solucionar utilizando sua dica e logo após a linha de comando a opção "2>> /diretorio/log.txt"
ele pegou tudo oqu foi mostado em terminal e jogou para dentro do /diretorio/log.txt


7. Re: Saida de erro terminal para Arquivo. [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 12/05/2016 - 20:42h

ncampos escreveu:

Obrigado pela ajuda,
Consegui solucionar utilizando sua dica e logo após a linha de comando a opção "2>> /diretorio/log.txt"
ele pegou tudo oqu foi mostado em terminal e jogou para dentro do /diretorio/log.txt


É isso ai mesmo, que bom que deu certo..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts