/ / SIGPIPE ao repetir variáveis ​​dentro do script bash - linux, bash, sinais

SIGPIPE quando echoing variável dentro de script bash - linux, bash, sinais

Eu tenho um cronjob rodando em uma caixa debian. Em certos pontos do script, defino variáveis ​​por meio de

HOSTNAME=$( hostname -s | tr A-Z a-z )

depois, registro esse valor no syslog (para ver se tudo está funcionando corretamente)

function log {
# just echo it
echo -n `date -u "+%s"`
echo -n " "
echo $1

/usr/bin/logger -t $0 -- $1
}

log "Hostname: ${HOSTNAME}"

No entanto, nesta caixa, recebo um SIGPIPE. Isso acontece muitas vezes ao longo do script. Prendi o SIGPIPE para confirmar que é esse o caso, mas gostaria de corrigir o problema.

Alguém pode me dizer o que pode estar causando o SIGPIPE e como corrigi-lo? Eu tentei criar um script de teste menor, mas esse script não reage da mesma maneira.

Respostas:

1 para resposta № 1

Meu palpite: no ambiente cron, o PATH é limitado, o que significa que o shell pode não ser capaz de encontrar nome de anfitrião e / ou tr. Primeiro, descubra onde hostname e tr estão localizados e use o caminho absoluto, por exemplo:

HOSTNAME=$( /bin/hostname -s | /usr/bin/tr A-Z a-z )