bash + como evitar mensagens específicas no arquivo de log

1

quando executo o script bash em minha máquina Linux, obtemos os seguintes erros no meu log,

nota - definimos o script:

exec > $log 2>&1 ,  (  in order to send all standard error/output to $log ) 

as mensagens de erros:

tput: No value for $TERM and no -T specified

para filtrar as mensagens de erro que tentamos definir no script bash que:

export TERM=xterm

mas sem ajuda

depois de cavar descobrimos que aconteceu em algum caso, por exemplo, quando executamos o ssh para a máquina remota e executa comandos na máquina remota VIA ssh

para evitar que definimos TERM = xterm no script bash da seguinte forma:

ssh user@$remote_machine "TERM=xterm  /tmp/script.sh"

mas não é uma solução elegante e, como meu script usa muito comando ssh e curl, não é uma solução prática definir isso em cada SSH ou curl etc.

então minha grande pergunta é

como filtrar a mensagem - tput: Nenhum valor para $ TERM e nenhum -T especificado ?

para não recebermos essa mensagem feia no meu arquivo $ log

    
por enodmilvado 16.01.2018 / 11:37

1 resposta

0

Que tal você tentar filtrá-lo antes de passar para o log? Assim talvez?

exec 2>&1 | egrep -v "tput: No value for $TERM and no -T specified" > $log

Após reflexão, isso não funciona com exec. Talvez seja melhor definir isso fora do script, ou seja, com um script de wrapper.

Veja se isso funciona:

Comente o exec e a declaração de log do seu script, como esta

#exec > $log 2>&1 

e execute o script com

/path/to/script.sh 2>&1 | egrep -v "tput: No value for $TERM and no -T specified" > /path/to/log
    
por 16.01.2018 / 13:56