【linux】运维-磁盘空间不足-用到的命令(简洁)

【linux】运维-磁盘空间不足-用到的命令

常用:

注:du -s 和 -d 不能同时都用, -s | -d n

注:df -H 和 -h 区别 -H 1K=1000 -h 1K=1024

 #-T 显示文件系统类型 -h 高可读性显示
df -Th         
#-c显示总和 ;sort -r 倒序显示 ;2>/dev/null 过滤错误信息
du -hsc  *  2>/dev/null | sort -h #列出目录下所有的文件或目录大小
du -h -d 1  2>/dev/null | sort -h #仅列出目录大小

inodes使用情况:

如果inodes使用使用到100%,即使磁盘空间有富余,也会提示磁盘空间已满。

df  -i  #选项-i,查看inodes使用情况

查找大目录:

 #找出占用比较大的目录  -d  目录层级  0指当前目录层
 #-d 可变层级查找
du -h -d 3  2>/dev/null |sort -h #找出占用空间比较大的目录,再进入目录查找大文件

查找大文件:

find . -type f -size +30M -exec du -hs {} \;  #列出当前目录下, 文件大小大于30M 的文件

注:1) {} 代表的是由find找到的内容,会被放置到{}位置中 2) exec 一直到\;为止,代表find额外动作的开始(-exec)到结束(‘\\;’),在这中间的就是find指令内的额外动作 3) 因为; 在bash环境下是由特殊意义的,因此利用反斜杠来转义

查找大文件(被删除但未释放空间的):

#查看已删除但是没有释放的文件的PID
lsof |grep delete
#查看该PID对应的应用
ps -ef |grep PID
#杀死该应用
kill -9 PID
#重新开启该应用,如
./spingBoot.sh start

查找文件/目录字节为0的文件(即空文件)

find / -empty

附:为什么ls 和 du查询文件大小结果不一样???

du -sh /etc/passwd
ls -lh /etc/passwd
du -sb /etc/passwd

在这里插入图片描述

原因:这里用ls和du分别查看passwd文件的使用大小,du命令显示的4KB(默认情况下,不到4KB以4KB显示,因为一个块是4KB,可用sb属性查看真实大小),而ls命令显示的是1.3KB(真实大小)。

博主自己认为,类似四舍五入了吧,大小是KB级别,用M单位 -m 查看会是1M 。所以用对应级别的查,就是对的。

在这里插入图片描述

附:为什么df的结果,有时候Used和Avail加起来不够Size ?

这是Linux文件系统的一种安全策略,它默认会为root用户保留5%的磁盘空间,留作紧急情况使用。

#可以通过tune2fs修改预留空间的比例
tune2fs -m 1 /dev/vda1 

在这里插入图片描述

附:硬盘接口:IDE、STAT、SCSI、SAS

在这里插入图片描述

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a700ad8c33.html