繁体   English   中英

如何在Linux中显示哪个进程拥有磁盘空间

[英]How To Show Which Process Owns Disk Space In Linux

我已经运行这些命令来确定Linux系统上的磁盘空间使用情况。

Filesystem Size Used Avail Use% Mounted on /dev/mapper/foovg-foo 326G 202G 108G 66% /export/data/foo

du -sk * | awk '{sum += $1}END{print sum}' du -sk * | awk '{sum += $1}END{print sum}' 132161064~126GB

所以,202G - 126G = 76G的差异。

76G磁盘空间在哪里? 如何找出保存文件句柄的进程?
删除的文件名是什么?

在Linux中, /proc/pid/fd/下的文件描述符是指向实际文件的软链接。

无论是否是原因,您都可以使用lsof查看哪些进程正在保留已删除的文件。 这样的事情可能会有所帮助:

lsof | grep '(deleted)$' | sort -rnk 7

换句话说,抓取所有已删除的文件,并按大小按降序排序。

您在du命令中使用*通配符,因此它不会拾取(隐藏)开头的目录. 例如,可能有.nfs文件占用空间,您的命令将无法获取。

您还可以使用-c选项告诉du生成总数,而不是使用awk

请改用以下命令:

# cd /export/data/foo
# du -ch . 

此命令还将为您提供所有子目录的大小,以便您可以找到哪个子目录占用更多空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM