我有一个 vpn 服务单元,我可以使用它查看日志...
journalctl -u vpn
我还有一个脚本可以手动与 vpn 交互并记录到日志中...
exec > >(systemd-cat -t vpn.sh) 2>&1
我可以查看日志...
journalctl -t vpn.sh
我尝试使用...查看两个日志
journalctl -u vpn -t vpn.sh
但它没有用。
有没有办法同时查看两个日志?或者是否可以-t vpn.sh
在 vpn 服务单元文件中设置标识符 () 以匹配我的脚本 ( vpn.sh
) 的标识符。
TL;DR:这将起作用:
您可以使用
+
连接两组连接并查找与任一表达式匹配的日志日志行。(这记录在 journalctl 的手册页中。)为此,您需要通过其正确的字段名称(标志
-u
和-t
快捷方式)来引用它们。您可以查看systemd.journal-fields(5)以获取字段名称的文档。(该页面还将解释为什么其中一个有前导下划线而另一个没有。)
因为
_SYSTEMD_UNIT
您需要完全匹配,包括.service
后缀(-u
快捷方式很智能,在将其转换为按字段查询时会找到确切的单位名称。)把它们放在一起,你会得到上面的命令。
我找到了一个我想发布的替代解决方案。有些人觉得它很有用。我可以在 Unit 文件中设置
SyslogIdentifier
under[Service]
,以便它与我的脚本中的标识符匹配。所以
因此,当我手动调用脚本时,标识符现在将匹配 vpn.sh 中的设置。在脚本的顶部,它设置为..
现在查看系统调用 vpn.sh 和手动调用 vpn.sh 的日志。
或者
似乎服务名称也可以用作标识符。像下面这样的库曼德对我有用。