在性能测试中,我们经常需要关注系统磁盘空间,防止磁盘空间满导致的错误,那么如何具体检查一下磁盘空间大小呢?如何找到占用最多空间的文件?使用df、du结合sort,可以快速查找系统中的大文件!一、df和du的区别1、df---diskfree可以快速获取磁盘占用了多少空间,还剩多少空间等信息。2、du---diskusage显示磁盘空间的使用情况,统计目录(或文件)占用磁盘空间的大小。是不是觉得字里行间没有区别?哈哈,其实还是有很多不同的。3、df和du的区别:(1)统计的范围不同。df是统计系统中各个磁盘的整体占用情况,不能统计具体文件夹或文件的大小。du不仅可以统计整体,还可以统计某个文件夹或文件的大小。(2)计算方法不同,计算速度不同。df通过文件系统快速获取空间大小信息,快速高效。du逐级进入指定目录的各个子目录,逐个计算每个文件的大小并相加。终于出现了。因此计算速度慢,当文件目录多、文件大时,会等待很长时间!!并且因为计算文件大小需要进入各个子目录,如果当前用户没有某些文件/文件夹的访问权限,则无法进行计算。(3)计算结果的差值df可以得到被删除的文件。由于df是通??过文件系统获取空间大小的,所以当我们删除一个文件时,该文件并不会立即在文件系统中消失,而是暂时消失。该规则释放已删除的文件。所以当一个文件刚刚被删除清空,还没有完全释放时,df还是会统计的。(删除大文件时,可以用df命令单独查看,刚删除的时候还是占磁盘空间的。)du只能看到当前存在的没有被删除的文件。他计算的大小是他认为此刻存在的所有文件大小的累加和。当文件系统也确认文件被删除时,du和df的结果是一致的。所以在这一点上,可以说du计算比较准确,也可以说df计算有延迟,根据个人情况使用就好。2、df命令1、df-h(-h参数使结果以K、M、G为单位,提高信息的可读性)[app@VM_18_18_centosjjingli]$df-hFilesystemSizeUsedAvailUse%Mountedon/dev/vda120G15G4.3G78%//dev/vdb118G100G13G89%/data默认显示系统所有磁盘。此图显示当前有两个硬盘分区及其各自的占用情况。2.df-hpartitionname这个命令可以指定显示某个分区的占用情况,这个分区用的比较少。在使用df-h命令看到磁盘占用高的时候,需要使用du命令进一步查看哪些文件比较大,然后删除。三、du命令1、du-sh(-h参数也是为了提高可读性,-s代表summary,只显示总大小)[app@VM_18_18_centosjjingli]$du-sh6.4G默认显示所有文件在当前目录和文件夹的总大小。当目录下的文件夹过多时,切记不要去掉-s参数,否则所有文件夹下的所有文件都会单独列出来。2.du-sh目录名如果du-sh不指定目录,则默认显示当前目录下所有子目录的总大小。du-sh目录名在指定目录的情况下,将显示指定目录下所有文件或文件夹的大小。du-sh*#显示当前目录下所有文件和文件夹的大小du-sh/#显示根目录下所有文件和文件夹的大小du-sh/data#显示当前目录下所有文件和文件夹的大小/data目录3.结合du和sort对文件进行排序#查看/data目录下所有文件和文件夹的大小,从大到小排序du-sh/data|sort-nr这个命令正确吗?错误的!因为du-sh显示的结果单位不一样,但是只能对数字进行排序,导致980KB的文件排在1GB文件的前面。#查看/data目录下所有文件和文件夹的大小,找出所有GB大小的文件,从大到小排序du-sh/data|grepG|sort-nr#这样就达到目的了~,但是如果文件夹很多,就得一个一个的进去找。如何解决?然后看下面:#去掉-s参数,可以直接查看所有文件包括所有文件夹du-h/data|grepG|排序-nr
