I’ve stumbled on this issue, so I’m wondering how is this possible?
Standard run of command:
# zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 info from server: "Processed 0 Failed 1 Total 1 Seconds spent 0.000017" sent: 1; skipped: 0; total: 1
OK, lets try to get the first line only:
# zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | head -1 sent: 1; skipped: 0; total: 1
What about standard head?
# zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | head sent: 1; skipped: 0; total: 1
Inverse grep? sed? tee?!?!?!!?
# zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | grep -v pero sent: 1; skipped: 0; total: 1 # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | sed 's/foo/bar/' sent: 1; skipped: 0; total: 1 # zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 | tee sent: 1; skipped: 0; total: 1
stderr to stdout?
# zabbix_sender -c zabbix_agentd.conf -k mmysql.QCInserts -o 14 2>&1 | tee sent: 1; skipped: 0; total: 1
I’m really puzzled…
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
This can happen if the application is writing directly to the TTY instead of STDOUT or STDERR.
You can play with this behavior by comparing the 2 examples below
( echo foo ) &>/dev/null ( echo foo > $(tty) ) &>/dev/null
Notice the first doesn’t show anything, but the second does. That’s because we sent the output directly to the tty and bypassed the redirection to /dev/null.
You can get around stuff like this by using script
script -c '( echo foo > $(tty) ) &>/dev/null' >/dev/null
Basically the script utility creates a fake tty and launches the command in that tty. Any output from the command is sent to STDOUT which you can then redirect as normal.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0