Linux ディストリビューションが systemd をサポートしている場合は、起動時からすべてのプロセスとアプリケーションがシステムから毎秒ダウンロードされます。ログを収集します。プログラム。これらすべてのジャーナル イベントは、systemd の journald
デーモンによって管理されます。 journald はすべてのログ (情報、警告、エラーなど) を収集し、それらをバイナリ データとしてディスク ファイルに保存します。
ログはディスク上に保持され、毎秒収集されるため、特に古いシステムやサーバーの場合、大量のディスク領域を占有します。たとえば、1 年ほど稼働しているテスト システムの 1 つでは、ログ ファイルのサイズがギガバイトになります。
複数のシステムとサーバーを管理する場合は、効率的な運用のためにジャーナル ログを正しく管理することをお勧めします。ログファイルの管理方法を見てみましょう。
systemd の journalctl
ツールを使用すると、これらのログをクエリし、ログに対してさまざまな操作を実行できます。たとえば、さまざまな起動時のログ ファイルを表示して、特定のプロセスまたはアプリケーションの最後の警告とエラーを調べます。これらのことを何も知らない場合は、このガイドに従う前に、このチュートリアルをざっと読んでおくことをお勧めします: journalctl を使用して systemd ログを表示および分析する (例あり) 。
systemd のjournald デーモンは、起動されるたびにログを収集します。これは、起動条件に基づいてログ ファイルを分類することを意味します。
ログはパス /var/log/journal
にバイナリ形式で保存され、フォルダーはマシン ID です。
##ログ ファイルの場所のスクリーンショット - 2
また、システム構成によっては、ランタイム ログ ファイルが /run/log/journal に保存されることにも注意してください。 /
。そして、これらは起動するたびに削除されます。ログ ファイルを手動で削除できますか?
systemd ログ ファイルはどれくらいのディスク容量を占有しますか?
journalctl --disk-usage
journalctl ディスク使用状況コマンド
グラフィカル デスクトップ環境がある場合は、ファイル マネージャーを開いてパスを参照できます。 /var/log/journal
にアクセスし、プロパティを確認します。systemd ログ クリーニング プロセス
journalctl にはログ ファイルを削除するツールが用意されていますが、これらのファイルを手動で削除しないでください。
让我们来看看如何 手动 删除它,然后我将解释 journald.conf
中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。
首先,你必须 flush
和 rotate
日志文件。轮换rotate是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。冲洗flush 开关要求日志守护进程将存储在 /run/log/journal/
中的所有日志数据冲入 /var/log/journal/
,如果持久性存储被启用的话。
然后,在 flush
和 rotate
之后,你需要用 vacuum-size
、vacuum-time
和 vacuum-files
选项运行 journalctl
来强制 systemd 清除日志。
例 1:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-time=1s
上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。
日志清理-例子
清理完毕后:
清理后--日志的占用空间
你也可以根据你的需要在 --vacuum-time
的数字后面提供以下后缀:
s
:秒m
:分钟h
:小时days
:天months
:月weeks
:周years
:年例 2:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-size=400M
这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。
K
:KBM
:MBG
:GB例 3:
sudo journalctl --flush --rotate
sudo journalctl --vacuum-files=2
vacuum-files
选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。
如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 --rotate
选项运行。
虽然上述方法很好,也很容易使用,但建议你使用 journald 配置文件来控制日志文件的清理过程,该文件存在于 /etc/systemd/journald.conf
。
systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。
journald.conf 参数 |
描述 |
实例 |
|
指定日志在持久性存储中可使用的最大磁盘空间 |
|
|
指定在将日志条目添加到持久性存储时,日志应留出的空间量。 |
|
SystemMaxFileSize | #単一のログ ファイルがローテーションされる前に永続ストレージ内でどれだけ大きくなるかを制御します。 SystemMaxFileSize=100M |
|
RuntimeMaxUse | 揮発性ストレージ ( /run ファイル システム内) で使用できる最大ディスク容量を指定します。 | RuntimeMaxUse=100M |
RuntimeKeepFree | データが揮発性ストレージ ( /run ファイル システム内) に書き込まれ、他の用途のために予約されることを指定します。スペース。 | RuntimeMaxUse=100M |
RuntimeMaxFileSize |
指定单个日志文件在被轮换之前在易失性存储(在 |
|
如果你在运行中的系统的 /etc/systemd/journald.conf
文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。
sudo systemctl restart systemd-journald
在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(PASS
)、失败(FAIL
)。
journalctl --verify
验证日志文件
希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。
以上がsystemd ログ メンテナンス ガイド (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。