加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在屏幕上打印消息并同时发送到syslog

发布时间:2020-12-14 01:01:09 所属栏目:Linux 来源:网络整理
导读:我正在尝试在我的脚本中实现-s(即无声)选项 – 当给出错误/信息等时,将发送到syslog,否则在屏幕上打印并同时发送到syslog.这就是我正在做的事情: echo -e "This Is a Test MessagenWell,not really!!" 21 | logger 将echo消息发送到syslog(不在屏幕上打印)
我正在尝试在我的脚本中实现-s(即无声)选项 – 当给出错误/信息等时,将发送到syslog,否则在屏幕上打印并同时发送到syslog.这就是我正在做的事情:

echo -e "This Is a Test MessagenWell,not really!!"  2>&1 | logger

将echo消息发送到syslog(不在屏幕上打印),但不能同时弄清楚如何同时执行这两个操作.我看到人们只谈论使用syslog进行日志记录,或者在屏幕上打印时将日志发送到不同的文件,而不是我正在尝试处理的情况.任何帮助或指针将不胜感激.干杯!!

解决方法

如果要将消息发送到syslog和stdout(而不是stderr),也可以这样做:

echo -e "This Is a Test MessagenWell,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.

这样可以避免每次进行回声时脚本都调用外部二进制记录器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读