Domingo, 23 de Setembro de 2007
BASH, stdout e stderr
Precisei de fazer um script (backup.sh) corrido pelo
cron daemon fazendo com o que o rsync gerasse o maior número de informação possível dos respectivos
logs (-vv) para um ficheiro – /var/log/rsync.backup.log
Os
logs precisavam de combinar o
stdout e o
stderr, portanto:
# backup.sh >> /var/log/backup.log 2>&1Contudo, apenas queria que o
output do
stderr fosse para o
cron, para em caso de erro, me ser enviado em e-mail.
Então:
# (./backup.sh > /var/log/backup.log) 2>&1 | tee -a /var/log/backup.logo que propaga o stderr para o cron e a restante tralha do
stdout para o ficheiro de logs :)
Agora só me falta organizar a informação, é uma chatice que o
stdout e o
stderr não sejam sincronizados.
A ouvir: Sorrow, Pink Floyd
YouTube: http://www.youtube.com/watch?v=njQtAC6EH8E
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.