GNU/Linux >> Linux の 問題 >  >> Linux

Systemdジャーナルログをクリアする方法

このクイックチュートリアルでは、Linuxシステムからsystemdジャーナルログをクリアする2つの方法を示します。

systemdジャーナルはsystemd独自のログシステムです。これは、initシステムのsyslogに相当します。カーネルログデータ、システムログメッセージ、さまざまなsystemdサービスの標準出力とエラーを収集して保存します。

systemdを搭載したLinuxマシンは、ログを/ var / log/journalディレクトリに書き込みます。 Linuxのディレクトリ構造を覚えているなら、/varはシステムログが保存される場所です。

lessコマンドを使用してログファイルを手動で表示するか、journalctlコマンドを使用できます。最新のログをすべて表示するには、reverseオプションを指定したコマンドを使用します。

journalctl -r

ロギングの問題は、時間の経過とともに大きくなり始めることです。また、Linuxのディスク容量を確認すると、数GBの容量が必要になる場合があります。

systemdジャーナルログをクリーンアップし、Linuxシステムのディスクスペースを解放する方法を紹介します。

systemdジャーナルログのクリア

まず、duコマンドを使用してジャーナルログが占めるスペースを確認します。

du -sh /var/log/journal/

同じタスクにjournalctlコマンドを使用することもできます:

journalctl --disk-usage

どちらのコマンドでも、ほぼ同じ結果が得られるはずです:

[email protected]:~$ journalctl --disk-usage
Archived and active journals take up 1.6G in the file system.

[email protected]:~$ sudo du -sh /var/log/journal/
1.7G	/var/log/journal/

ジャーナルログに必要なスペースがわかったので、ログをクリアするかどうかを決定できます。ジャーナルログをクリアすることにした場合は、いくつかの方法を紹介します。

もちろん、rmコマンドを使用してログフォルダ内のファイルを削除することもできますが、それはお勧めしません。 journalctlコマンドを使用すると、古いログを適切に処理できます。

最初にすべきことは、ジャーナルファイルをローテーションすることです。これにより、現在アクティブなジャーナルログがアーカイブとしてマークされ、新しいログが作成されます。オプションですが、そうすることをお勧めします。

sudo journalctl --rotate

これで、古いジャーナルログをクリアする3つの方法があります。特定の時間より古いログを削除するか、古いログファイルを削除して、合計ログサイズが事前定義されたディスク容量に制限されるようにするか、ログファイルの数を制限します。 3つの方法すべてを使用する方法を見てみましょう。

1。 x日より古いジャーナルログをクリアする

ログは監査の目的で重要であるため、すべてのログを同時に削除しないでください。たった2日間のログ履歴を保持したいとします。 2日より古いエントリをすべて削除するには、次のコマンドを使用します。

sudo journalctl --vacuum-time=2d

出力は次のようになります。

Vacuuming done, freed 1.6G of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c

また、提供時間枠を2時間のように時間単位で、2mのように分単位で、2秒のように秒単位で変更することもできます。より長い時間単位が必要な場合は、2週間、2か月も可能です。

2。ログを特定のサイズに制限する

もう1つの方法は、ログサイズを制限することです。これにより、ジャーナルログが占めるディスク容量が指定したサイズを下回るまで、ジャーナルログファイルが削除されます。

sudo journalctl --vacuum-size=100M

これにより、ログサイズが約100MBに減少します。

Vacuuming done, freed 40.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.

サイズは、GBとG、MBとM、KBとKなどで指定できます。

3。ログファイルの数を制限する

3番目の方法は、ログファイルの数を制限することです。 journalctlには通常、システムとユーザーのログファイルがあります。ログが古くなると、さまざまなファイルにアーカイブされます。

アーカイブログファイルの数を制限できます。ログファイルを5つだけにしたいとします。

journalctl --vacuum-files=5

古いアーカイブログファイルが削除され、指定された数のログファイルのみが残ります。

Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (8.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Vacuuming done, freed 104.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.

古いログファイルを自動的にクリアする[コマンドラインの中間知識が必要]

今のところ、ログファイルをクリーンアップします。 1か月で、ログは再び増加します。上記のいずれかの方法で手動でクリーニングできます。しかし、それは退屈な作業であり、定期的に行うことを覚えていない可能性があります。

良い点は、古いログファイルを自動的に処理するようにsystemdを構成できることです。

journalctlの構成ファイルは/etc/systemd/journald.confにあります。コメントアウトされている設定があります。コメント付きの行は、基本的に、これらの設定パラメータのデフォルト値を示しています(コメントアウトされている場合でも)。

これらのデフォルト設定の一部を変更して、ログファイルを自動的にクリーンアップできます。

次の設定を変更することをお勧めします:

設定 説明
SystemMaxUse 最大ディスク容量ログにかかる​​可能性があります
SystemMaxFileSize 個別のログファイルの最大サイズ
SystemMaxFiles ログファイルの最大数

注意!

設定ファイルを編集するときは注意が必要です。 confファイルの編集中にばかげた間違いをしないように、Vim、Emacs、Nanoなどのターミナルベースのテキストエディタを快適に使用できる必要があります。

最初に構成ファイルのバックアップを作成することをお勧めします:

cp /etc/systemd/journald.conf /etc/systemd/journald.conf.back

ここで、使用する設定のコメントを解除する必要があります(行の先頭の#を削除します)。たとえば、ログファイルが使用する最大ディスク容量を250MBに制限したいとします。

この設定ファイルを編集するには、Vimまたはその他の端末ベースのエディタを使用する必要があります。ファイルを編集した後の私の様子は次のとおりです。

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
SystemMaxUse=250M
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100

構成ファイルを編集した後、変更をロードする必要があることに注意してください。

sudo systemctl restart systemd-journald

journald.confファイルを使用して、journalctl設定をさらに微調整できます。表示するログのレベル(情報、デバッグ、エラーなど)を設定することもできます。これらの設定も変更するかどうかはあなた次第です。

このヒントを参考にして、systemdジャーナルログファイルをクリアしてください。ご質問やご提案がございましたら、下にコメントを残してください。


Linux
  1. システム管理者がsystemdを愛する5つの理由

  2. LinuxでBashの履歴をクリアする方法

  3. ディスクスペースを解放する–Ubuntu20.04でSystemdジャーナルログをクリアする

  1. Linuxでメモリキャッシュをクリアする方法

  2. Journalctlをクリアする方法は?

  3. systemd サービスの出力をファイルにリダイレクトする方法

  1. LinuxでSystemdサービスを作成する方法

  2. systemd サービスを停止する方法

  3. systemd サービスを削除する方法