Journalctl/システムログ「ユーザー1000ダンプコアのプロセス1234(プロセス名)」メッセージを別のファイルに抽出します。

Journalctl/システムログ「ユーザー1000ダンプコアのプロセス1234(プロセス名)」メッセージを別のファイルに抽出します。

これは簡単な質問です。

でダンプされた各プロセスのデバッグ情報を含む別々のファイルなどの概要が必要ですjournalctl

以下はサンプル出力です。

Jan 17 12:49:45 localhost systemd-coredump[137987]: [

答え1

理由は聞かないでください。しかし、journalctl _COMM=systemd-coredumpうまくいきません。-- No entries --。あまりありません。

JSON出力を使用すると、簡単に実行できると確信しています。しかし、それを行うにはjq出力を消費して解析する必要がありますが、私は適切なプログラマではないので、awkJSONを使用することにしました。これが私が得るものです:

#! /bin/bash 

journalctl --output=short-unix | awk '{
    if ($1 ~ /^[0-9]/) {
        if ( found == 1 && fname != "") system("touch -d @"unixts" "fname)
        found=0
    }
    if ($0 ~ "dumped core") { # extract timestamp and process name and generate a filename
        split($1, arr , ".")
        if(arr[1] != "") unixts=arr[1]
        psta=index($0, "(")
        pend=index($0, ")")
        pname=substr($0, psta+1, pend-psta-1)
        fname=pname"-"unixts".txt"
        found=1
    }
    if (found == 1) print $0 >> fname
}'

したがって、ファイルを簡単に表示でき、対応するログイベントと同じタイムスタンプを持ちます。

$ ls -la
drwxr-xr-x.  2 root root    740 Jan 20 13:12 .
drwxrwxrwt. 22 root root    820 Jan 20 13:12 ..
-rw-r--r--.  1 root root 105937 Jan 14 19:55 chrome-1673726131.txt
-rw-r--r--.  1 root root  73845 Jan 13 22:20 xfce4-panel-1673648402.txt
-rw-r--r--.  1 root root  73853 Jan 14 18:05 xfce4-panel-1673719532.txt
-rw-r--r--.  1 root root  72205 Jan 16 15:33 xfce4-panel-1673883202.txt
-rw-r--r--.  1 root root  73845 Jan 17 12:49 xfce4-panel-1673959785.txt
-rw-r--r--.  1 root root  62702 Jan 10 08:31 xfce4-screensav-1673339519.txt
-rw-r--r--.  1 root root  62577 Jan 10 08:32 xfce4-screensav-1673339524.txt
-rw-r--r--.  1 root root  62702 Jan 11 11:13 xfce4-screensav-1673435632.txt
-rw-r--r--.  1 root root  62577 Jan 11 11:14 xfce4-screensav-1673435640.txt

これが他の人にも役立つことを願っています。

関連情報