Se você estiver usando bash
, você também pode combinar exec >&
do bash, para redirecionar todas as saídas do script, com a substituição do processo.
por exemplo. algo como o seguinte no início do seu script:
LOGFILE='/tmp/teelog.log'
savelog "$LOGFILE"
exec &> >(tee "$LOGFILE")
Isso redirecionará a stdout & stderr para stdout e $ LOGFILE, usando savelog
para rotacionar e manter logs mais antigos (7 por padrão) toda vez que o script é executado.