| Log Eficiente
| (
| echo "Iniciando em $(date)"
| rm -vr /tmp/becape/*
| ~/bin/meu-becape.sh --tudo
| echo "Tamanho do becape: $(du -hs /tmp/becape)"
| echo "Terminado em $(date)"
| ) >> /tmp/log.txt
|
| simples assim ? AFFFF... KISS na veia...vou reescrever muito... :(
| algum mestre pode apontar algum efeito colateral desastroso desta técnica ?
| Obrigado.
Desatroso, não, mas eu acho mais elegante fazer assim:
<code>
SCRIPTNAME=$(basename $0 .sh)
TIMESTAMP=$(date +%H%M%S)
TRACEFILE=z2_${SCRIPTNAME}.trc
if [ -f "${TRACEFILE}" ]; then
~ # Movendo Log para ${TRACEFILE}_${TIMESTAMP}
~ mv ${TRACEFILE} ${TRACEFILE}_${TIMESTAMP}
fi
echo "LOG: ${TRACEFILE}"
exec 1>> ${TRACEFILE} 2>&1
</code>
Simplesmente tudo o que o script fizer do exec para frente será armazenado em
${TRACEFILE}. Além disso, o log anterior será salvo,
para efeitos de comparação.
O ideal é que esse trecho de código seja o primeiro a ser executado. Para isso,
acostume-se a utilizar templates e insira isso neles.
Colocando esse trecho no início dos seus scripts e utilizando um comando simples para
substituir tudo o que possuir >> e terminar
com .log ( por exemplo ), acredito que você diminua a reescrita do seu programa.
O vim possui um plugin chamado bash-support, que já possui alguns templates
prontos. Vale o estudo.