刚被告知服务器磁盘严重预警,最近刚加大的磁盘感觉有点诡异,于是跟踪排查了一下,最终发现是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。

作者:聂立飞
链接:https://www.jianshu.com/p/d0f55a25486b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

nohup.out过大问题相关推荐

  1. linux out 日志,关于Linux中nohup.out日志过大问题(示例代码)

    关于Linux中nohup.out日志过大问题 背景,java项目,一般在运行JAVA程序时需要用到nohup命令来实现后台启动日志,默认保存在当前目露nohup.out文件.但是有些程序输出nohu ...

  2. idea工作台输出的日志详解_详解linux下nohup日志输出过大问题解决方案--分批切割...

    概述 有的时候我们为了让某个程序在后台跑,一般都会用nohup ./xxx & 执行让程序后台运行,假设过了一段时间日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,有什么办 ...

  3. linux如何查看nohup日志大小,linux下nohup日志输出过大问题解决方案

    最近在一Hadoop测试集群运行一个Spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打 ...

  4. 解决sql2014的distribution系统库distribution.mdf过大问题

    解决sql2014的distribution系统库distribution.mdf过大问题 DISTRIBUTION的MDF很大 因为『分发清除: distribution』這個SQL JOB執行失敗 ...

  5. php 一秒操作一次_php守护进程 加linux命令nohup实现任务每秒执行一次

    Unix中 nohup 命令功能就是不挂断地运行命令,同时 nohup 把程序的所有输出到放到当前目录 nohup.out 文件中,如果文件不可写,则放到 /nohup.out 文件中.那么有了这个命 ...

  6. 解决nohup: 忽略输入并把输出追加到“nohup.out“或者nohup: 忽略输入重定向错误到标准输出端

    解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端 解决方法: 执行nohup java -jar do_iptable ...

  7. 无人驾驶急需解决:规划控制和传感器价格高两大问题(附Apollo算法)

    作者 | Mavis 出品 | AI科技大本营(公众号ID:rgznai100) [AI 科技大本营按]2017 年百度 AI 开发者大会上,现场视频连线了正乘坐无人驾驶汽车行驶在五环上朝会场赶来的李 ...

  8. linux后台执行命令:amp;与nohup的用法

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 大家可能有这样的体验:某个程序运行的时候,会产生大量的log,但实际上我们只想让它跑一下而已, ...

  9. Linux nohup命令用法详解

    nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行. nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的 ...

最新文章

  1. iptables小案例,nat表应用
  2. spring_通过Spring Boot了解H2 InMemory数据库
  3. 轻量级web富文本框——wangEditor使用手册(2)——扩展一个“缩进”功能 demo
  4. 点站点链接出现短时间白屏或闪屏现象
  5. 一位同学想通过用计算机编程解决韩信点兵,高中信息技术《算法与程序设计模块》练习题...
  6. Spring boot 多数据源
  7. 最小的JavaFX演示文稿(在JavaFX中)
  8. Anaconda下如何创建python2等虚拟环境
  9. 名词解释 JDK JRE JVM
  10. Django 组件- 中间件
  11. 大白菜U盘启动制作工具怎么用?
  12. coin3d碰撞检测的实现
  13. js 中 clientHeight、scrollHeight 等获取的高度的区别和使用
  14. Android软件安全开发实践
  15. TFS2010安装全过程
  16. 极域电子教室一直显示正在连接教师机解决方法
  17. Autoware(Architecture Proposal)
  18. 补交20145226蓝墨云班课 -- MyOD
  19. 成本太高,京东配送扛不住了?
  20. 2021年职业病防治法宣传周宣传资料

热门文章

  1. element动态form实现
  2. Spring之数据源整理
  3. python做带数据库的登录界面_Python3 Tkinkter + SQLite实现登录和注册界面
  4. 阿里云cloudmonitor服务导致CPU暴增的异常
  5. [MySQL] mysql 的行级显式锁定和悲观锁
  6. JavaWeb 后端 三 之 Response Request 学习笔记
  7. Fedora Linux中配置JDK5或JDK6环境变量
  8. 模拟退火算法从原理到实战【基础篇】
  9. JAVA常见算法题(三十三)---求子串在字符串中出现的次数
  10. iOS音乐后台播放及锁屏信息显示