美文网首页互联网Linux小推车
nohup.out过大导致磁盘爆满

nohup.out过大导致磁盘爆满

作者: 聂云⻜ | 来源:发表于2019-08-08 11:33 被阅读51次

刚被告知服务器磁盘严重预警,最近刚加大的磁盘感觉有点诡异,于是跟踪排查了一下,最终发现是Elasticsearch的启动方式导致的。在此记录一下排查步骤,以备后用。

问题排查

第一步:肯定是确认磁盘占用率

 df -h

查看磁盘占用率的确超过80%

第二步:查找大目录

 du -h --max-depth=1

跟踪到文件目录为logstash的bin目录

第三步:定位大文件

ls -lht

第四步:保留最近1万条数据,清空nohup.out

log=`tail -n 10000 nohup.out`; 
echo "$log" > nohup.out 

至此磁盘占用率恢复正常

原因回顾

为了使我们的项目不会因为其他原因而挂掉,大家一般会使用nohup命令,我这个最初启动logstash的脚本也是

nohup ./logstash -f start.conf &

用nohup命令会在当前的目录产生一个nohup.out的日志文件,时间长了磁盘消耗很大。elasticsearch吃内存,logstash吃磁盘,这就很尴尬了。

扩展阅读

1. nohup.out的由来及作用

用途:LINUX命令用法,不挂断地运行命令。

语法:nohup Command [ Arg ... ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &( 表示“and”的符号)到命令尾部。

例子: nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台执行,并且打印过程日志到nohup.out,当然也可以将nohup.out的输出转向到其他文件

2. nohup.out的查看方法

实际使用过程中往往因为懒,经常没有给nohup.out进行重定向输出,也没有按日期分割文件,会造成这个文件特别巨大,这个使用想查看文件,搜索出错内容就比较痛苦了。一般有两种方式:

  • linux本机查看:使用tail 命令查看最新的日志,或滚动监控日志打印。
tail -1000 nohup.out (查看最后1000行日志文本) 
tail -f nohup.out(监控日志打印)
  • 采用Ftp等工具下载到本地,用编辑器查看

3. nohup.out维护管理方法

如果直接使用rm -rf nohup.out删除,目录中没有这个文件了,但是磁盘空间还是没有减少。这是因为我们的项目正在使用中,就像我们熟悉的Windos系统打开一个文件你是无法删除的。

这种问题处理办法:

  • 关闭当前的服务,rm -rf 直接删掉,启动服务。生产环境勿用。

  • 清空nohup.out,这个不需要关闭服务

第一种:echo ''  > nohup.out
第一种:cp /dev/null nohup.out
第三种:cat /dev/null > nohup.out

4. 一劳永逸解决nohup.out文件过大的问题

以下是定义日志打印级别,除了高于级别2的告警信息记录到log文件外,其余直接不记录

# 只输出错误信息到日志文件
nohup ./logstash - f start.conf  > /dev/null 2 > log &

# 指定到黑洞目录,什么信息也不要
nohup ./logstash - f  > /dev/null 2 > &1 &

Linux的三种重定向

  • 0: 表示标准输入
  • 1: 标准输出,在一般使用时默认的是标准输出
  • 2: 标准错误信息输出,可以用来指定需要重定向的标准输入或输出

    例如将某个程序的错误信息输出到log文件中:./program 2 > log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

    关于/dev/null文件

    Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

相关文章

  • nohup.out过大导致磁盘爆满

    刚被告知服务器磁盘严重预警,最近刚加大的磁盘感觉有点诡异,于是跟踪排查了一下,最终发现是Elasticsearch...

  • 容器环境磁盘读写加快,磁盘快速消耗,直到爆满

    容器环境磁盘读写加快,磁盘快速消耗,直到爆满 1.报错表现:磁盘读写加快,磁盘快速消耗,直到爆满 2.问题定位及原...

  • 磁盘空间不足的另一种情况(实践篇)

    前续文章:情景linux--如何解决单日志文件过大导致的磁盘空间不足? 情景linux--如何解决单日志文件过大...

  • wsl、wsl2 导出迁移

    wsl2 虚拟机时间长占用空间过大导致C盘爆满 用 export命令导出tar包 再用 import命令导入 ...

  • linux系统磁盘监控脚本

    主要场景应用于主机磁盘用量突增的情况监控,以便于及时介入处理,避免磁盘爆满。

  • LVM管理

    由于磁盘根目录分配比较小加上开发人员不正规的操作,导致根目录爆满,数据库经常出现错误,通过df -h 查看 ,发现...

  • Windwos 系统C盘空间清理 2020-04-10

    解决问题:C盘爆满,导致磁盘空间不够用苦恼。 提前说一个比较有用的方案:打开安装的所有“桌面”软件,查看软件中的“...

  • 小坑记

    序幕 最近公司的运维同事老是跟我反映说线上出现磁盘爆满;导致项目奔溃服务不能使用的问题;一开始频率比较低;基本一个...

  • 【centos】磁盘优化及扩容

    一、Centos 虚拟磁盘爆满 1、场景描述 Centos 在使用中,当磁盘分配不合理的情况下,很容易出现使用的磁...

  • python nohup 文件无限增加

    用nohup命令会在当前的目录产生一个nohup.out的日志文件!时间长了特别的占磁盘空间! 处理办法一:1.关...

网友评论

    本文标题:nohup.out过大导致磁盘爆满

    本文链接:https://www.haomeiwen.com/subject/momtjctx.html