【发布时间】:2021-01-13 07:41:39
【问题描述】:
我经常看到 stdout 和 stderr 都通过管道传输到 syslog。但是,在 syslog 中不再可能区分它是否是错误。消息严重性始终是信息(或者我使用单个记录器命令的 -p 选项设置的)。如何解决这个问题呢?具体来说,它是关于我的备份脚本发送错误echo "Error occurred...!" >&2
脚本通过以下语句作为 cron 作业运行:
/root/bin/backup 2>&1 | /usr/bin/logger -t backup -i
【问题讨论】:
-
您可以根据需要将 stderr 和 stdout 记录到不同的位置。目前尚不完全清楚您的确切问题是什么。
-
不,相同的位置(系统日志),但启用过滤和监控的严重性不同(请参阅rsyslog.com/doc/v8-stable/configuration/…)
-
我不了解 rsyslog,但我了解您希望在将 stderr 中的消息写入同一个文件之前对其进行预处理,对吗?
-
@Amit Singh 每个日志条目都有一个严重性。通常它是“信息”(代码 6)。默认情况下,严重性不显示在 /var/log/syslog 中。但是使用 Lggr 之类的监控工具,可以按严重程度进行过滤并执行一些进一步的操作,例如对关键消息发出警报。
标签: linux shell stderr io-redirection syslog