Mac*_*ers 5 linux bash logging syslog echo
我正在尝试-s在我的脚本中实现(即静默)选项 - 当给出错误/信息等时,将发送到syslog,否则在屏幕上打印并同时发送到syslog.这就是我正在做的事情:
echo -e "This Is a Test Message\nWell, not really!!" 2>&1 | logger
Run Code Online (Sandbox Code Playgroud)
将echo消息发送到syslog(不在屏幕上打印),但不能只是弄清楚如何同时做两者.我看到人们只谈论在屏幕上打印时记录syslog或发送日志到不同的文件,而不是我正在尝试处理的情况.任何帮助或指针将不胜感激.干杯!!
如果您想将消息发送到 syslog 和 stdout(而不是 stderr),您也可以这样做:
echo -e "This Is a Test Message\nWell, not really!!" | tee >(exec logger)
Run Code Online (Sandbox Code Playgroud)
以及有效的方法(如果您正在创建一个函数):
exec 40> >(exec logger)
function log {
echo -e "$1"
echo -e "$1" >&40
}
log "something..."
exec 40>&- ## optionally close it at the end of the script.
Run Code Online (Sandbox Code Playgroud)
这将使您的脚本免于每次执行回显时调用外部二进制记录器。