Linux 磁盘使用情况

Linux 磁盘使用情况

我试图找出哪些文件夹占用/分区。我看到大量磁盘空间进入 jenkins 目录

sudo du -sh /home/jenkins
289G    /home/jenkins

当我检查 jenkins 目录文件夹时,我得到最大的文件夹是:

sudo du -sh /home/jenkins/*
137G    /home/jenkins/jobs

而其余的文件夹都比较小,几十K/M.../home/jenkins下总共有50个文件夹。

我怎样才能找到谁“吃掉”了这个空间?

谢谢

答案1

sudo du -sh /home/jenkins和之间的区别sudo du -sh /home/jenkins/*在于,在几乎所有 shell 中(使用默认设置),*不包括隐藏文件或目录。隐藏意味着以句点开头的名称(例如,如果有/home/jenkins/.temp/,则不会包含在第二个 中du)。

因此,您似乎拥有大约 289-137=152 GiB 的隐藏文件。找出它们在哪里的最简单方法是这样的:

sudo du -m /home/jenkins | sort -nr | less

去掉-swill make 会du向您显示所有内容所在的子目录,这听起来像是您想要的。这将包括隐藏的。如果仍然找不到,请添加-a

sudo du -am /home/jenkins | sort -nr | less

如果您有一些非常大的隐藏文件,这还会显示单个文件。它可能还需要更长的时间来运行(添加文件通常会大大扩展输出)。

您还可以使用图形前端;就我个人而言,我使用 xdiskusage (但也许只是因为我一直在使用它):

sudo du -am /home/jenkins | xdiskusage -

答案2

使用以下命令查看作业内部

du -sm /home/jenkins/jobs/* |sort -nr

我建议进行反向排序,最大的排在最后,就在新命令行上方,-n指定数字比较,du 输出设置为始终显示为 MB,以便可以合理地对行进行排序。

编辑:有人建议还添加-adu计算所有文件(包括隐藏文件),但评论已消失?

答案3

使用查找命令:

find /home/jenkins/jobs/ -type f -size +100M -exec ls -lh {} \;

答案4

也许这三个选项结合在一起可以达到您期望的结果:

-s, --总结

仅显示每个参数的总计

-c, --总计

产生总计

-h, --人类可读

采用人类可读格式的打印尺寸(例如,1K 234M 2G)

linus@host: / $ sudo du -sch *
9,8M    bin
362M    boot
4,0K    cdrom
12K     dev
32K     docker
170M    etc
9,5G    data
36G     home
0       initrd.img
0       initrd.img.old
2,9G    lib
4,4M    lib64
16K     lost+found
84G     media
12K     mnt
1,1G    opt
du: cannot access ‘proc/6836/task/6836/fd/4’: No such file or directory
du: cannot access ‘proc/6836/task/6836/fdinfo/4’: No such file or directory
du: cannot access ‘proc/6836/fd/4’: No such file or directory
du: cannot access ‘proc/6836/fdinfo/4’: No such file or directory
0       proc
19M     root
du: cannot access ‘run/user/1000/gvfs’: Permission denied
1,7M    run
13M     sbin
4,0K    srv
0       sys
52K     tmp
7,5G    usr
14G     var
0       vmlinuz
0       vmlinuz.old

154G    total  

相关内容