如何重定向 shell 的 debug 信息到 rsyslog
今天在优化 steem 节点的管理脚本的时候新学到的。
#!/bin/bash
# redirect debug info to rsyslog
exec 5> >(logger -t aws_custom_func_debug)
BASH_XTRACEFD="5"
set -xe
解释:
logger -t aws_custom_func_debug [msg]
这个是在/var/log/messages
中写入一条标记为aws_custom_func_debug
的日志。以前一直都是用管道直接echo msg >> /var/log/messages
,这样做相当于是绕开了rsyslog
的管理,导致日志信息不全。exec 5> >...
的作用是把管道5重定向到某位置,注意两个>
中间有一个空格BASH_XTRACEFD="5"
让set -x
的信息输出到管道5