Systemdジャーナルをクリアする安全な方法をGoogleで見つけることができませんでした。安全で信頼できる方法を知っている人はいますか?
私が何かを実験していて、ログがさまざまなエラーメッセージでいっぱいになったとしましょう。さらに、Conkyを使用してデスクトップにジャーナルを表示しています。私はこれらのエラーを見たくありません。私がこの問題を修正していたひどい日を思い出させてくれるので、私はこの恐怖の後に新鮮な男のように感じたいです。これがログをクリアする正当な理由であることに誰もが同意すると思います:P。
セルフメンテナンスの方法は、ログをサイズまたは時間で掃除することです。
過去2日間のみ保持する:
journalctl --vacuum-time=2d
過去500 MBのみを保持します。
journalctl --vacuum-size=500M
man journalctl
詳細については。
通常、自分でジャーナルをクリアすることはありません。これはsystemd自体によって管理され、新しいデータが入ってくると古いログがローテーションされます。ジャーナルをスケジュールして、関心のあるデータだけを保持するようにしてください。調整する最も一般的なことは、ディスク全体です。占有できるスペース。この境界を越えると、この値の近くに留まるように古いエントリがピッチングされます。
これは /etc/systemd/journald.conf
のように:
SystemMaxUse=100M
Michael's answer 不足していることが1つあります。掃除機をかけると、アーカイブされたジャーナルファイルのみが削除され、アクティブなジャーナルファイルは削除されません。すべてを取り除くには、最初にファイルをローテーションして、最近のエントリが非アクティブなファイルに移動されるようにする必要があります。
したがって、allエントリを削除する完全な答えは、
journalctl --rotate
journalctl --vacuum-time=1s
(これを1つのjournalctl
コマンドに結合することはできません。)
ちなみに、ディストリビューションによっては、ログをディスク(/var/log/journal
)に書き込むように構成されているディストリビューションもあれば、メモリにログを保持するディストリビューション(/run/log/journal
)もあります。すべてを削除するには、最初にjournalctl --flush
を使用する必要がある場合があると思います。
バージョンに--rotate
がない場合は、--since
引数を使用してエントリをフィルタリングできます。
--since "2019-01-30 14:00:00"
--since today
Arch Linuxで私が得た最も近いものは:
Sudo systemctl restart systemd-journald
私のシステムでは、各ジャーナルファイルは8MBで、上記は3つを除くすべてをクリアし、合計サイズは〜25MBになりました。
私のユースケースでは、BTRFSのCoWを無効にしていました(ジャーナルディレクトリとサブディレクトリのみ):Sudo chattr +C /var/log/journal/*
。問題は、属性が新しく作成されたファイルにのみ設定されるため、ジャーナルをフラッシュしたいということです。
--vacuum-time
および--vacuum-size
何もしませんでした。次のことを行いました。
$ Sudo find /var/log/journal -name "*.journal" | xargs Sudo rm
$ Sudo systemctl restart systemd-journald
それは正しくありませんが、うまくいきました。
ログ全体をクリーンアップする非常にブルートフォースの方法:
$ Sudo journalctl --vacuum-time=1seconds
マイケルのメントーとして--vacuum-size
を使用することもできます。
CentOSでは--rotateと--vacuum-time = 1sはどちらも機能しませんでした。私はこのようにそれをクリアすることができました:
Sudo rm -rf /run/log/journal/*
私の以前の答えは「複製」されたために削除されました。さて、私の前の答えでは十分に明確ではなかったのは残念ですが、それは既存の答えとは異なりました。だからここにもっと複雑なバージョンがあります:
journalctl -m --vacuum-time=1s
は私のためにトリックをしました。 -m
フラグに注意してください、すべてのジャーナルがマージされ、クリーンアップされます。 -m
フラグがないと、私の場合(CentOS-7の場合)は何もクリーンアップされませんでした。
それが役に立てば幸い。
journalctl -b
は、最新のブートからのみ表示されます。 -b -1
、-b -2
などを使用することもできます。恐ろしい日はまだそこにありますが、必要がない限り、表示する必要はありません。
またSudo journalctl --vacuum-files 1
。
今後必要になる場合に備えて、バックアップしてください。cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
ファイルをクリアします。cd /run/log/journal/<temp-string>/
>system.journal
最新のログを確認してください:journalctl -xe