【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
