本文主要是介绍【日常运维】pm2起的应用删除应用日志后,发现磁盘控间没有释放,lsof | grep delete 也没看到相关进程,怎么办?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》暂未更新
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
【日常运维】pm2起的应用删除应用日志后,发现磁盘控间没有释放,lsof | grep delete 也没看到相关进程,怎么办?
背景:
我们机器磁盘维护,常见的故障之一:删除数据和日志后,磁盘空间未得到释放,导致空间100%
这一次我们的应用pm2管理的,也遇到了这样的情况,下面是排查过程。
排查思路:
1.检查删除文件是否还存在,是否成功删除
2.有可能文件不在了,但是删除进程还在进行---lsof | grep delete 可以找到相关进程并kill -9 掉即可
3.比较特殊,pm2管理应用的,竟然有产生日志到~/.pm/ 下面,由于在隐藏目录下,在使用命令查看时需要注意。
du -sh /*
和du -sh /
是用于查看文件或目录大小的命令,它们之间有一些区别。
du -sh /*
:这个命令会计算并显示根目录下所有一级子目录或文件的大小总和,并以易读的格式(例如 GB、MB)进行显示。/*
表示根目录下的所有一级子目录或文件,但不包括隐藏文件或目录(以.
开头的文件或目录)。
du -sh /
:这个命令会计算并显示整个文件系统根目录的大小总和,并以易读的格式进行显示。/
表示整个文件系统根目录,包括根目录下的所有文件、目录以及隐藏文件或目录。因此,区别在于
du -sh /*
只计算根目录下的一级子目录或文件的大小总和,而du -sh /
则计算整个文件系统根目录的大小总和,包括所有文件和目录。
这里笔者也被 du -sh /* 这个命令坑了,/* 不包含隐藏目录,需要去掉*。才显示~/.pm2/下面的日志,清理即可。
在这里才提一下关于磁盘的,还有一种情况是 磁盘空间显示还有,但是inode已经用完了,
这是为什么呢?---》答案是系统出现过多小文件,把inode都占用了。
这个时候需要遍历 一个一个删除小文件即可。此时无法使用rm -f 去删除多小文件的目录
如果直接删除rm -rf xxx基本上是行不通的,会报Argument list too lng 问题,就是删除的文件太多了。
找到对应目录进行遍历删除:
#删除7天前的所有数据
find . -ctime +7 -name "*" | xargs -i rm -rf {}
这篇关于【日常运维】pm2起的应用删除应用日志后,发现磁盘控间没有释放,lsof | grep delete 也没看到相关进程,怎么办?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!