我的系统上的 /var/log 的内容现在占据了硬盘的 80%,并且导致了很多问题。
因此我需要清除所有旧内容,但出于某种原因,sudo rm -rf "*.gz"
无法删除这些旧文件。而且奇怪的是,我不能 100% 确定我能看到的所有日志文件是否真的占到了我正在处理的巨大磁盘使用量。为什么磁盘使用情况分析工具会显示 /var/log 中使用了超过 600GB,而我用 ls 却找不到那么多使用量?
此外,今后我想确保这种情况不再发生,所以我想改变日志文件保留或轮换策略(不管它们如何命名)。
编辑:该du
命令显示 syslog.1 占用了 597GB。我该如何更改该日志的工作方式以避免这种情况?
编辑2:我认为这个链接显示了根本原因,但我不知道该怎么办。 https://www.mail-archive.com/[电子邮件保护]/msg386959.html
答案1
首先检查日志,找出填满日志的内容。然后修复该问题。
/var/log/ 中所有以 .gz 结尾的日志文件都是旧的压缩日志文件,可以使用以下命令删除:
sudo rm -rf *.gz
这将使当前日志保持完整。这些日志应以 结尾.log
。如果以数字结尾的日志添加了行(应该添加行的位置),*.log
则需要检查添加到此日志的软件。其中一个配置文件可能有错误。
确保 *.log 的权限正确。这也可能是一个问题。
syslog
应该-rw-r----- 1 root adm
mysql.log
应该-rw-r----- 1 mysql adm
apache2
是一个目录,drwxr-x--- 2 root adm
里面的 2 个文件应该是-rw-r----- 1 root adm
如果需要清空 ACTIVE 日志文件,请不要使用,rm
而应使用> /var/log/{logfile}
。这将保留文件的权限,清空文件并保持文件在磁盘上存在。