磁盘几乎已满,如何调查哪些文件占用了最多的空间?
编辑
我发现大部分空间都被 mysql bin log 占用了:
/var/lib/mysql/jiaoyou-slow.log: 53M
/var/lib/mysql/mysql-bin.000005: 68M
/var/lib/mysql/mysql-bin.000003: 1.1G
/var/lib/mysql/mysql-bin.000007: 34M
/var/lib/mysql/mysql-bin.000004: 225M
删除这些文件安全吗?
答案1
类似这样的事情应该可以帮到你:
find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
这将查找/
(root) 下大小大约超过 20mbs 的任何文件。您可能需要调整 $9/$5 变量,但大多数情况下您不必这样做。如果您只想查看默认日志文件夹,我还建议您更改/
为。/var/log/
答案2
如果你使用的是图形环境,则可以使用类似磁盘使用情况分析器(又名 Baobab)可以生成如下所示的漂亮年轮图:
(来源:marzocca.net)
命令行仍然是你最好的武器,但我发现它非常方便。还有一些替代方案这里。
答案3
使用 logrotate(8) 来压缩并删除旧日志文件是一个好主意,这样一些繁琐的守护进程就不会填满整个磁盘。
编辑:此外,大多数日志将位于 /var/log 中。简单的 ls -lh 将列出哪些日志太大。
答案4
如果您的分区大小合理,则应在日志目录之外搜索大型文件。日志不太可能成为您的问题,在普通系统上,日志很少超过 200 MiB。
只要您不确定自己实际上做了什么,就应该避免删除日志。如果日志文件突然消失,许多守护进程的反应会非常不稳定 - 结果可能是服务不再工作,甚至无法重新启动该特定服务。
如果您删除 /var/log/* 下已存档的文件(例如以 .gz 结尾的文件),则应该可以解决问题。同样,我怀疑这是否真的解决了您的主要问题(例如硬盘太满)