我正在尝试在脚本中实现-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/

10-11 15:41