admin管理员组文章数量:1516870
解决Linux中磁盘空间不足的问题
问题:
1、无法自动补全命令
2、无法mkdir文件
通过 du 和 df 检查磁盘空间
命令: df -h
分析情况
1、磁盘空间不足没有剩余空间。文件太大或者文件夹太多
2、已被删除的文件进程仍然在使用。该文件已经被删除但是进程未被释放
3、i(indoe)节点不够了
检查磁盘空间的使用情况
命令 :df -h
下图磁盘空间使用正常(示例磁盘空间已满:/dev/sad1 18G 18G 18G 100% / )
情况1:磁盘空间不足
根据命令一层层查找最大文件。删除不必要的文件
1、查看根目录中磁盘使用的情况,最大使用为/home文件夹
du -sh /*
du -sh /home/* #查看/home文件夹下的磁盘空间rm-rf *#删除改目录下的所有文件rm-rf abc.txt #删除该目录下的abc.txt文件情况2:文件已被删除,进程未被释放 (我的问题点在这)
当查找磁盘空间使用情况是。目录文件均使用合理。考虑是否是进程的问题
当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除。当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间。
lsof |grep -i deleted #查看被删除但是仍然被占用的文件列表lsof通常的输出格式为:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
常见包含例如以下几个字段
1、COMMAND
默认以9个字符长度显示的命令名称。可使用+c參数指定显示的宽度,若+c后跟的參数为零,则显示命令的全名
2、PID:进程的ID号
3、PPID
父进程的IP号,默认不显示,当使用-R參数可打开。
4、PGID
进程组的ID编号,默认也不会显示,当使用-g參数时可打开。
5、USER
命令的执行UID或系统中登陆的username称。默认显示为username,当使用-l參数时,可显示UID。
6、FD
是文件的File Descriptor number。
当有文件被删除仍然有进程存在时,我们可以重启该项目,不建议直接杀掉进程
Kill-9 PID #重启项目时仍然不能解决问题可以直接杀掉PID拓展:
常常使用场景:
1.显示开启某个文件的进程。
lsof /文件路径/文件名
2.显示某个端口正在执行什么进程。比如查看ssh服务的默认端口22端口
lsof -i:22
3.显示init超级进程如今打开的文件。
lsof -c init
4.显示进程号为x的进程打开了哪些文件。
lsof -p x
情况3:i(indoe)节点不够了
- 文件系统中有一些称为 “i 节点inode” 的元数据,其用来保存文件的相关信息。很多文件系统中的 i 节点数量是固定的,因此很可能 i 节点已经耗尽了而文件系统本身还没有用完。你可以使用 df 来检查。
- i节点数量是固定的,无法进行扩充。当i节点已满,只能进行删除一些无用的节点
排查思路:
1、定时任务产生大量的琐碎的小文件
2、postfix不要的maildrop文件 (/var/spoor/postfix/maildrop/)
3、/data/cache /opt/newcache /tmp等
di -i #查看磁盘空间i节点的使用情况- i节点知识匮乏待学习。请参考其他的其他资料
找到问题根源,删除不必要的日志文件和无法使用的文件,释放i节点
我又又又在工作上失误。有坑不要怕。学会填坑。
版权声明:本文标题:Linux磁盘空间不足?看这里,帮你搞定i节点挑战! 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1771106688a3261812.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论