Linux 上的磁盘空间不足?检查您的日志!

20240123093340245-image

关键要点

  • Linux 系统日志可能会占用大量磁盘空间。
  • 您的系统通常会压缩旧的日志文件以节省磁盘空间。
  • 您可以使用 journalctl 或 tail -f 命令查看日志并识别有问题的进程。

尽管 Linux 系统以纤细著称,但您可能会发现磁盘空间突然用完了。为什么会这样?最大的线索,也许也是最大的罪魁祸首,将出现在 Linux 系统的日志中。

为什么日志会占用这么多磁盘空间?

 

日志是管理 Linux 系统的重要组成部分。您可以查看机器的运行情况,还可以解决出现的任何问题。Linux 日志记录守护程序类似于 Windows 上的事件查看器。报纸通常不会占用太多空间。这是因为大多数发行版会自动管理它们在磁盘上占用的空间。

Linux 日志一直是纯文本文件,但随着许多主要发行版迁移到 systemd,它们是由 systemd 服务 journald 管理的二进制文件。或者,您的发行版将使用 rsyslog 或 syslog-ng。

由于旧日志无关紧要,并且大型存档会占用空间,因此系统通常会“轮换”它们(存档、压缩并最终删除它们)以节省您实际需要的项目的磁盘空间。

尽管您可能认为日志不会占用太多空间,但错误的进程填满日志的速度可能比系统运行它们的速度更快。

如果您正在检查磁盘空间,突然发现自己空间不足,并且知道您最近没有下载任何大文件,则原因可能是您的 Linux 系统日志有问题。您需要找出填满系统日志的原因并修复它。

 

您可以使用 -h 命令检查您正在使用的磁盘空间量:

du -h /var/log

您将看到每个子目录的列表,以及它占用的总空间量:

 

查找您的日记

如果您使用的是带有 systemd 的现代 Linux 发行版,您将使用 journalctl 程序来查看您的日志;journald 通常将日志存储在 /var/log/journal 或 /run/log/log 目录中,具体取决于发行版。

20240123093434509-image

若要查看日志,请在 shell 提示符下键入命令 journald。还有其他有用的命令行选项。要显示启动消息,请使用 -b 选项:

journalctl -b

您可以使用 -f 选项实时查看系统的日志消息。

如果您的发行版不使用 systemd,您可以在 /var/log 目录中找到日志。即使使用 systemd,某些程序仍将其日志存储在此目录中。这些是普通的文本文件,您可以使用实用程序(如寻呼机)进行检查,例如 less。

例如,要读取系统日志:

less /var/log/syslog

你将看到日志文件的完整内容,该文件可以包含数千行:

20240123093524608-image

您还可以使用 tail 命令的 -f 选项实时监控它:

tail -f /var/log/syslog

Linux 如何轮换日志文件

20240123093603400-image

在 /var/log 目录中,您可能会注意到名称以“log.N.gz“,其中 N 是一个数字。这是系统轮换旧日志的结果。大多数发行版都有一个自动执行此操作的实用程序,称为“logrotate”。Logrotate 通常配置为作为 cron 作业或系统计时器运行。

默认情况下,大多数发行版将每天运行 logrotate。Logrotate 使用 gzip 压缩旧日志,“.gz”文件扩展名证明了这一点。它使用阈值(如期限或文件大小)来执行此操作,并使用另一个阈值来选择性地删除旧日志文件。

 

默认的 logrotate 选项对于大多数桌面用户来说已经足够了。您可以通过以 root 身份编辑 /etc/logrotate.conf 文件以及编辑系统的 cron 或 systemd 计时器文件来更改日志行为,但这些操作实际上仅适用于服务器管理员。

最好修复填满日志的内容,而不是修改配置文件以节省磁盘空间。

哪些日志可以安全删除?

20240123093645985-image

如果所有其他方法都失败了,并且您迫切希望释放磁盘空间,则可以在 logrotate 之前手动删除以“.gz”结尾的存档日志文件。您可以使用 rm,但您需要以 root 身份运行它,因为这些文件属于系统:

sudo rm /var/syslog/syslog.*gz

此命令将删除所有包含“syslog”的文件。并以“gz”结尾。

通过 sudo 执行命令时一定要非常小心,尤其是像 rm 这样的破坏性命令!

 

在不完全了解其含义的情况下,通常不应删除系统目录中的文件,但如果缺少存档日志,则不会有问题。如果遇到问题,可能需要参考较旧的日志。

如何解决填满日志的问题

找出填充日志的内容的最佳方法是使用 journalctl 或 tail -f 选项跟踪日志。最好重复错误消息。

您将需要管理有问题的进程以节省磁盘空间。如果您不确定导致错误的原因,可以搜索网络或寻求有关分发支持渠道的帮助。当您最终修复它时,您可以安全地删除旧日志。您现在应该有更多的磁盘空间。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容