我已经运行这些命令来确定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}'
132161064~126GB
所以,202G - 126G = 76G差异。
76G磁盘空间在哪里?
如何找出保存文件句柄的进程?
删除的文件名是什么?
在Linux中,/proc/pid/fd/
下的文件描述符是指向实际文件的软链接。
答案 0 :(得分:2)
无论是否是原因,您可以使用lsof
查看哪些进程占用了已删除的文件。这样的事情可能会有所帮助:
lsof | grep '(deleted)$' | sort -rnk 7
换句话说,抓取所有已删除的文件,并按大小按降序排序。
答案 1 :(得分:2)
您在du命令中使用*
通配符,因此它不会选择以.
开头的(隐藏)目录。例如,可能有.nfs
个文件占用空间,您的命令将无法获取。
您还可以使用-c
选项告诉du
生成总数,而不是使用awk
。
请改用以下命令:
# cd /export/data/foo
# du -ch .
此命令还将为您提供所有子目录的大小,以便您可以找到哪个子目录占用更多空间。