Linux 배포판이 systemd를 지원하는 경우 부팅 시간부터 매초마다 시스템의 모든 프로세스와 애플리케이션에서 로그를 수집합니다. 이러한 모든 로그 이벤트는 systemd의 저널
데몬 관리. Journald는 모든 로그(정보, 경고, 오류 등)를 수집하여 디스크 파일에 바이너리 데이터로 저장합니다. journald
守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。
由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器来说。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。
如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。
使用 systemd 的 journalctl
工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程:使用 journalctl 查看和分析 systemd 日志(附实例) 》。
systemd 的 journald 守护进程在每次启动时都会收集日志。这意味着,它根据启动情况对日志文件进行分类。
日志以二进制形式存储在路径 /var/log/journal
,文件夹为机器 ID。
比如说:
日志文件位置的截图-1
日志文件位置的截图-2
另外,请记住,根据系统配置,运行时日志文件被存储在 /run/log/journal/
。而这些在每次启动时都会被删除。
你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl
工具清除日志文件以释放磁盘空间。
打开一个终端,运行以下命令。
journalctl --disk-usage
这应该为你提供系统中的日志文件实际使用的数量。
journalctl 磁盘使用命令
如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 /var/log/journal
,并检查属性。
清理日志文件的有效方法应该是通过 journald.conf
配置文件来完成。正常情况下,即使 journalctl
journalctl
도구를 사용하면 이러한 로그를 쿼리하고 다양한 작업을 수행할 수 있습니다. 예를 들어 다양한 시작의 로그 파일을 보고 특정 프로세스나 애플리케이션에 대한 마지막 경고 및 오류를 조사합니다. 이에 대해 모르는 경우 이 가이드를 따르기 전에 이 튜토리얼을 잠깐 살펴보는 것이 좋습니다. journalctl 사용 시스템 로그 보기 및 분석(예제 포함)🎜》. 🎜/var/log/journal
, 폴더는 컴퓨터 ID입니다. 🎜🎜예: 🎜🎜 🎜로그 파일 위치-1 스크린샷🎜🎜🎜
로그 파일 위치 스크린샷-2🎜🎜또한, 시스템 구성에 따라 런타임 로그 파일은 /run/log/journal/
. 그리고 이는 시작할 때마다 삭제됩니다. 🎜
journalctl
도구는 로그 파일을 지워 디스크 공간을 확보합니다. 🎜sudo journalctl --flush --rotate🎜이를 통해 시스템에서 사용 중인 실제 로그 파일 수를 알 수 있습니다. 🎜🎜🎜
journalctl 디스크 사용량 명령🎜🎜그래픽 데스크톱 환경이 있는 경우 파일 관리자를 열고 /var/log/journal
그리고 속성을 확인해보세요. 🎜
journald.conf
구성 파일을 완료합니다. 일반적인 상황에서는 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 🎜🎜 |
|
指定单个日志文件在被轮换之前在易失性存储(在 |
|
如果你在运行中的系统的 /etc/systemd/journald.conf
文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。
sudo systemctl restart systemd-journald
在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(PASS
)、失败(FAIL
)。
journalctl --verify
验证日志文件
希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。
위 내용은 systemd 로그 유지 관리 가이드(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!