如何告诉journalctl确实显示两个优先级?

如何告诉journalctl确实显示两个优先级?

我只想显示crit并且info不显示介于两者之间的内容。

我试过:

journalctl -p 2..2 -p 6..6

但这不起作用。第二个参数似乎覆盖了第一个参数。

以下代码会产生语法错误:

journalctl -p 2,6

如何只检索两个优先级而中间没有任何值?

我正在寻找比这更简洁的解决方案。

journalctl -o json | jq --argjson p '{"2":"CRIT","6":"INFO"}' --raw-output 'select(.PRIORITY == "2" or .PRIORITY == "6") | "\(.__REALTIME_TIMESTAMP | tonumber / 1000 / 1000 | strflocaltime("%Y-%m-%d %H:%M:%S")) \($p[.PRIORITY]) \(.MESSAGE)"'

答案1

将其指定为原始过滤器,因为您已经知道这些字段:

journalctl PRIORITY=2 + PRIORITY=6

虽然过滤器语法的表达能力不是很强,但它确实支持使用+. (例如,journalctl A B C + D E表示“(A && B && C) || (D && E)”。)

相关内容