【日常运维】pm2起的应用删除应用日志后,发现磁盘控间没有释放,lsof | grep delete 也没看到相关进程,怎么办?

本文主要是介绍【日常运维】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 也没看到相关进程,怎么办?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973558

相关文章

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各