Redirecionamento de saída de erro
Dica publicada em Linux / Introdução
Redirecionamento de saída de erro
A saída de erro padrão é o monitor de vídeo. Se listarmos um
diretório e ele não existir, a mensagem de erro aparecerá na tela:
$ ls programas
ls: programas: No such file or directory
Em alguns casos é interessante transportar as mensagens de erros que ocorrem no sistema para um arquivo, para serem analisados posteriormente.
$ ls programas 2> error
$ cat error
ls: programas: No such file or directory
Observe que a mensagem de erro foi transferida para o arquivo "error". Para que a mensagem de erro seja transferida, você deve informar ao sistema que ela será mandada para um arquivo. Para isso utilizamos o sinal de "2>", visto que ele se refere à saída de erro padrão.
abraços
JuNiOx
$ ls programas
ls: programas: No such file or directory
Em alguns casos é interessante transportar as mensagens de erros que ocorrem no sistema para um arquivo, para serem analisados posteriormente.
$ ls programas 2> error
$ cat error
ls: programas: No such file or directory
Observe que a mensagem de erro foi transferida para o arquivo "error". Para que a mensagem de erro seja transferida, você deve informar ao sistema que ela será mandada para um arquivo. Para isso utilizamos o sinal de "2>", visto que ele se refere à saída de erro padrão.
abraços
JuNiOx
Além desse direcionamento de erro também existe um redirecionamento de tudo que o comando gera para tal ao invés de usar 2> deve-se usar o &>. Por exemplo, isso pode ser usado para compor um arquivo de LOG mostrando as etapas de execução do comando para um posterior encaminhamento por email. Exemplo:
#!/bin/bash
ASSUNTO=Asunto do Email"
rar -a arquivo_a_ser_gerado.rar arquivo_original.txt &> | arquivo.log
tr X < arquivo.log | mail -s "$ASSUNTO" email@de.destino
# o comando tr foi applicado ao caracter para que o "arquivo.log" ficasse no formato unix e que portanto o log ficasse no corpo o email.
# Trata-se uma solução específica para resolver o problema o log do rar, caso contrário o arquivo ao invés de ir no corpo do e-mail iria como anexo.
Fontes:
http://www.afms.com.br/shell/?page=3
http://forum.mandriva.com/en/viewtopic.php?t=127987