排查linux服务器磁盘占用大的方法
日常生活中会出现服务器的磁盘爆满,服务器负载过大的情况,有一种情况就是因为磁盘容量不够导致的。
du : disk usage,是通过搜索文件来计算每个文件的大小然后累加; du搜索到的文件只是一些当前存在的,没有被删除的,他计算的大小就是当前他认为存在的所有文件大小的累加和 df,disk free,通过文件系统来快速获取空间大小的信息; 当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了; 当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件; df 记录的是通过文件系统获取到的文件的大小,df 可以看到被删除还未释放的文件; df 计算大小的时候,把被删除还未释放的空间也加上了,更精确; 当文件系统也确定删除了该文件后,这时候du与df就一致了
-a:显示全部目录和其次目录下的每个档案所占的磁盘空间 -s:只显示各档案大小的总合 -b:大小用bytes来表示 -x:跳过在不同文件系统上的目录不予统计 -a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数 -h是使输出结果更易于人类阅读; du -s只展示目录的使用总量(不分别展示各个子目录情况); -m是以MB为单位展示目录的大小(-k/-g就是KB/GB了)。 du -s 展示目录总量,且以k为单位 du -sh 展示目录总量,自动以可读性高的方式展示大小 du -sh /* 查看根目录下其他文件夹名称和大小 du -h 没有指定文件夹路径,则查询当前路径下的文件夹,以及文件夹下的文件夹大小 du -h --max-depth=1 查询当前路径下的一级文件夹大小 du -h --max-depth=1 | grep 'G' 查询当前路径下的一级文件夹,匹配'G'的文件夹 大小
a:显示全部的档案系统和各分割区的磁盘使用情形 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) t:显示某一个档案系统的所有分割区磁盘使用量 x:显示不是某一个档案系统的所有分割区磁盘使用量 T:显示每个分割区所属的档案系统名称 df -h 磁盘使用情况(文件系统的使用情况) df -hT 查询磁盘占用空间 举例: [root@ecs-8a1c-1109893 data]# df -h 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on
du和df的区别:
du查看目录大小,df查看磁盘使用情况。 1).查看某个目录的大小:du -hs /home/master/documents 查看目录下所有目录的大小并按大小降序排列:sudo du -sm /etc/* | sort -nr | less 2).查看磁盘使用情况(文件系统的使用情况):sudo df -h df --block-size=GB -h是使输出结果更易于人类阅读;du -s只展示目录的使用总量(不分别展示各个子目录情况),-m是以 MB为单位展示目录的大小(当然-k/-g就是KB/GB了)。 3,du使用详细案例 a:显示全部目录和其次目录下的每个档案所占的磁盘空间 s:只显示各档案大小的总合 b:大小用bytes来表示 x:跳过在不同文件系统上的目录不予统计 a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
参考该文章
https://www.cnblogs.com/scl1314/p/7534894.html