我正在尝试在脚本中实现-s
(即无声)选项-当给出错误/信息等信息时,将被发送到syslog,否则将在屏幕上打印并同时发送到syslog
。那就是我在做什么:
echo -e "This Is a Test Message\nWell, not really!!" 2>&1 | logger
将
echo
消息发送到syslog
(该消息不会在屏幕上显示),但不能仅仅弄清楚如何同时执行这两种操作。我看到人们只谈论用syslog
登录或在屏幕上打印时将日志发送到其他文件,而不是我正在尝试处理的情况。任何帮助或指针,将不胜感激。干杯!! 最佳答案
如果要将消息发送到syslog和stdout(而不是stderr),也可以执行以下操作:
echo -e "This Is a Test Message\nWell, not really!!" | tee >(exec logger)
以及执行此操作的有效方法(如果要创建函数):
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.
这样可以避免您每次执行回显时都调用外部二进制记录器的脚本。
关于linux - 在屏幕上打印消息,并同时发送到系统日志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18571360/