web-dev-qa-db-ja.com

systemctlステータスサービスから完全なログを表示するにはどうすればよいですか?

systemctl status service-nameでサービスのステータスを確認します。

デフォルトでは、いくつかの行しか表示されないので、-n50を追加してさらに表示します。

時々、最初から完全なログを見たいことがあります。数千行になる可能性があります。
今、私はそれを-n10000でチェックしますが、それはきちんとした解決策のようには見えません。

lessコマンドのような完全なsystemdサービスログをチェックするオプションはありますか?

415
10robinho

次のように、journalctlコマンドを使用するだけです。

journalctl -u service-name.service

または、現在のブートのログメッセージのみを表示するには:

journalctl -u service-name.service -b

<something>.serviceという名前の場合、実際には<something>を次のように使用できます。

journalctl -u service-name

ただし、他の種類のユニット(ソケット、ターゲット、タイマーなど)の場合は、明示する必要があります。

上記のコマンドでは、-uフラグは--unitの略であり、関心のあるユニットの名前を指定します。 -b--bootの短縮形であり、出力を現在のブートのみに制限して、古いメッセージがたくさん表示されないようにします。詳細は journalctlのマニュアルページ を参照してください。

606
larsks

systemctlには、-l 国旗:

systemctl -l status service-name

-l:省略記号(...)でエントリを切り捨てません

--no-pagerを追加すると、出力がインタラクティブな端末である場合にページャーが呼び出されなくなります。

28
Julien

journalctlを使用してシステムのログを表示します

PagingPermalinkなしでビューjournalctlログを標準出力に送信し、ページングを回避するには、-no-pagerオプションを使用します。

journalctl --no-pager

表示されるログの数を最初にフィルタリングしないでこれを行うことはお勧めしません。

journalctl -u service-name.service

時間範囲内のログを表示するPermalink --sinceオプションを使用して、指定した日時以降のログを表示します。

journalctl --since "2018-08-30 14:10:10"

--untilオプションを使用して、指定した日時までのログを表示します。

journalctl --until "2018-09-02 12:05:50"

これらを組み合わせて、2つの時間の間のログを表示します。

journalctl --since "2018-08-30 14:10:10" --until "2018-09-02 12:05:50"

詳細

6
champion-runner

journalctlを使用

ログをテキストファイルに書き込む

ボトムアップで読んで

journalctl -u service-name.service > file_name.txt

tail file_name.txt
2
J11