gpt4 book ai didi

linux - 从 CentOS Journalctl 获取特定的 PID

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:11 27 4
gpt4 key购买 nike

我正在编写一个 bash 脚本,它将在屏幕上打印来自已终止(或仍然存在,两种情况都必须有效)的服务的所有最新日志。我知道它的名字,不用猜。
我很难为已经死于 journalctl 的进程获取最新的 PID。我不是在谈论这个:

journalctl | grep "<processname>"

这将给我所有在其文本中包含进程名称的日志。我也试过:

journalctl | pgrep -f "<processname>"

这个命令给了我一个数字列表,应该包括我进程的 pid。它不在那里。

这些想法来自搜索以前的问题。我还没有找到可以具体回答我所问问题的问题。

如何从 journalctl 中提取特定进程的最新 PID?

最佳答案

我想通了。
首先,您必须在日志中打印您的 PID。它不会自动出现在那里。然后,您可以使用 grep -E 和 awk 从日志中准确获取您想要的表达式:

Var=$(journalctl --since "24 hours ago" | grep -E "\[([0-9]+)\]" | tail -n 1 | awk '{print $5}' | awk -F"[][{}]" '{print $2}'

这个单行脚本获取过去 24 小时的日志,grep 和 -E 以使用表达式,tail -n 1 从这些结果中获取最后更新的行,然后使用 awk 来分隔行和从中获取您需要的确切表达式。

关于linux - 从 CentOS Journalctl 获取特定的 PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54631151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com