不知道大家有没有遇到过这种情况,就是经常会出现linux文件磁盘空间不足导致的网站打不开,面板登录不上的情况,小魏今天就遇到了,空间占用爆满,小魏进行清理占用最大文件,网站恢复,那么这个时候我们就会想着查看哪些文件占用空间最大,把不需要的占用文件最大的删除掉,防止资源的浪费,那么在linux下如何查看占用最大的文件或者文件目录呢?今天小魏刚好在实际的生产环境中遇到了网站打不开,空间爆满的情况,在此做一个记录,希望对于大家有所帮助。
1.Linux下查看文件和文件夹大小
当磁盘空间大小不足或者爆满超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
df 可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
du 可以查看文件及文件夹的大小。
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
2.两个命令的区别
df命令可以显示目前所有文件系统的可用空间及使用情形。
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢?
//查看系统中文件的使用情况
df -h
//查看当前目录下各个文件及目录占用空间大小
du -sh *
-s选项指定对于目录不详细显示每个子目录或文件的大小
//方法一:切换到要删除的目录,删除目录下的所有文件
rm -f *
显示前10个占用空间最大的文件或目录:
du -s * | sort -nr | head
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sh [dirname|filename]
如:
当前目录的大小:
du -sh .
当前目录下个文件或目录的大小:
du -sh *
用root到/目录下去利用命令
du -s -h ./*
查看哪个目录占用了这么多的磁盘,如果找到后,依次进入那个目录,利用相同的办法,就能定位到文件上去。
ls -h filepath h表示human, 加-h参数得到人好读的文件大小
du -h filepath 直接得出人好识别的文件大小
du -b filepath 参数-b表示以字节计数