use*_*084 1 linux storage hard-drive opensuse
我试图追踪我所有的硬盘空间都去了哪里。我有 1TB 的总空间,根据我的系统,使用了 433GB。但是,我知道我有更多,因为我没有任何我知道的大文件或文件夹。下面显示了前 10 个目录。
du -cks *|sort -rn|head
Run Code Online (Sandbox Code Playgroud)
它说 /var 文件夹占用了 480GB,但是当我进入该文件夹时,没有什么大的(我从 root 或 '/' w/ su 权限运行它)。
我错过了什么?是否有任何隐藏文件,该代码没有拿起?作为参考,我使用的是 opensuse 11.3,如果这有区别的话。
如果您按照建议执行递归 du 并计算整个 var 树的所有空间,并且它没有与使用的总数相加,则您可能需要检查未链接的文件句柄是否处于打开状态。这可能发生在不正确的 logrotate 脚本中,这些脚本删除或移动仍在积极写入的日志。您取消链接文件(删除 inode,因此 ls 不再报告它)但进程仍在写入它。
lsof 通常不是标准安装,因此您必须通过 OpenSuse 使用的任何方式安装它,然后运行:
lsof +L -a /var
你会看到像这样的输出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NODE NAME
httpd 32287 apache 14w REG 253,7 3020256 1 121 /var/log/httpd/access_log
Run Code Online (Sandbox Code Playgroud)
会出现很多文件,但是您要查找的是大小列中具有较大值且 NLINK 列中具有 0(并且未标记为已删除)的文件。该文件仍在写入,但不再链接。
然后,您可以通过终止打开未链接文件句柄的进程来更正它。
归档时间: |
|
查看次数: |
296 次 |
最近记录: |