Dica - saida de comando [RESOLVIDO]

1. Dica - saida de comando [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 29/11/2016 - 15:33h

Tenho um Script que faz sincronismo de diretórios via Rsync, estou quase conseguindo oque preciso,porem falta um detalhe.
Desejo que quando gerar algum erro a saida conste no arquivo de log.txt , atualmente se gerar erro consigo apenas a saida (Ocorreu um erro durante o processo de Sincronizacao) mas nao o motivo .
(aceito dica de melhorias,nao dominino o shell)
Meu script esta assim:

#!/bin/bash
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")
LOG='/home/log_sinc.txt'
ORIGEM='/home/backup/'
DESTINO='/home/ftp_nuvem/'

echo " Sincronizacao iniciada : $DIAMESANO as $HORAMINUTO " > $LOG

if (/usr/bin/rsync -rvuh --temp-dir=/home/temp $ORIGEM $DESTINO ) >> $LOG

then

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Sincronizacao realizada com sucesso em: $DIAMESANO as $HORAMINUTO " >> $LOG

else

# LOG COM INFORMACAO DE PROCESSO
DIAMESANO=$(date +"%d/%m/%Y")
HORAMINUTO=$(date +"%T")

echo " Ocorreu um erro durante o processo de Sincronizacao em: $DIAMESANO as $HORAMINUTO " >> $LOG

fi


  


2. MELHOR RESPOSTA

Fabiano
fpires

(usa Debian)

Enviado em 29/11/2016 - 17:07h

A linha
if (/usr/bin/rsync -rvuh --temp-dir=/home/temp $ORIGEM $DESTINO ) >> $LOG  

Está descartando a saída de erros. Experimente trocar por

if (/usr/bin/rsync -rvuh --temp-dir=/home/temp $ORIGEM $DESTINO ) >> $LOG  2>> /tmp/rsync_error.log  

e após a execução analise o conteúdo do arquivo /tmp/rsync_error.log

3. Re: Dica - saida de comando [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 29/11/2016 - 17:41h

fpires escreveu:

A linha
if (/usr/bin/rsync -rvuh --temp-dir=/home/temp $ORIGEM $DESTINO ) >> $LOG  

Está descartando a saída de erros. Experimente trocar por

if (/usr/bin/rsync -rvuh --temp-dir=/home/temp $ORIGEM $DESTINO ) >> $LOG  2>> /tmp/rsync_error.log  

e após a execução analise o conteúdo do arquivo /tmp/rsync_error.log


Obrigado pela força ,show de bola ... funcionou certinho.
Apenas para sanar minha duvida, queria centralizar o Log tudo no mesmo arquivo, nao é possivel SOMENTE EM CASO DE ERRO jogar essa saida " o erro" p meu $LOG mesmo que grava o log de sucesso.
Pois em caso de erro ele nao ira gravar o "sucesso" e sim trazer a informação de erro, a intenção é jogar a saida "erro" logo abaixo da informação (" Ocorreu um erro durante o processo de Sincronizacao).



4. Re: Dica - saida de comando [RESOLVIDO]

Fabiano
fpires

(usa Debian)

Enviado em 30/11/2016 - 13:15h

Pra jogar tudo pra um lugar só, você precisa redirecionar a saída de erros (2) para a saída padrão (1). Isso pode ser feito de duas formas:
comando  > $LOG  2>&1 

ou simplesmente
comando  &> $LOG  



5. Re: Dica - saida de comando [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 07/12/2016 - 11:50h

fpires escreveu:

Pra jogar tudo pra um lugar só, você precisa redirecionar a saída de erros (2) para a saída padrão (1). Isso pode ser feito de duas formas:
comando  > $LOG  2>&1 

ou simplesmente
comando  &> $LOG  


Obrigado pela grande ajuda!!! funcionou tudo de acordo como precisava.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts