概述

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


nohup命令解释:

语法:

nohup [command] [args] [&]

说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部,如果不指定重定向,则日志默认输出到当前目录下nohup.out文件中,

重定向: nohup ./execute.sh > /home/xxx/log.log 2>&1 & :这样日志会重定向到指定目录下。


nohup和&的区别

& : 指在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行


切分nohup.out,不让它无限增长

思路:定时将nohup.out切分成,多个小文件,但同时又要使nohup.out不会无限增长下去(一般情况下是程序不能中断的)。

a、每天(根据需要设置时间),定时切分前一天的日志,(比如每天大概1g,那么可以么次切分100m左右),

b、切分完后将nohup.out文件情况,保证新的输出日志会不停的继续输出到nohup.out

以上在shell中

current_date=`date -d "-1 day" "+%Y%m%d"`split -b 65535000 -d -a 4 nohup.out ./log/log_${current_date}_ 

这里使用split命令,将nouhup文件按指定大小切分(65535000b 大概60多M吧,可以自定义大小 ),并分成指定格式(-d -a 4以4位数字形式为后缀以从0000开始),最终输出格式为log_20190918_0001

cat /dev/null > nohup.out

(该命令会瞬间清空nohup.out文件,后续会继续写该文件),将日志定向到/dev/null中

使用重定向输出一样可以这样,只不过换成重定向的文件名即可

将这些命令定义在一个shell文件每天定时运行即可,这样每天日志会被分成若干份,排查也方便,而且如果日志积压过大的话。可以定时删除历史的日志,保留近几天即可。

最终脚本如下:

#!/bin/bashpath=$(cd `dirname $0`;pwd) cd $pathecho $pathcurrent_date=`date -d "-1 day" "+%Y%m%d"`echo $current_datesplit -b 65535000 -d -a 4 /home/nohup.out /home/log/log_${current_date}_cat /dev/null > nohup.out

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

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

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

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

  2. Linux下重要日志及查看方式

    原文地址::https://www.cnblogs.com/skyhu365/p/10615706.html 相关文章 1.linux清除cache的方法----https://www.cnblogs ...

  3. linux 日志压缩及清理,linux下的日志压缩脚本

    linux下的日志压缩脚本: #!/bin/bash #第一步:先定义项目列表如下: projects="project-a project-b project-c project-d&qu ...

  4. Linux登录安全及用户操作审计 ,linux下清理日志脚本

    一.合理使用Shell历史命令记录功能 Linux下可通过history命令查看用户所有历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,有时候***会删 ...

  5. Linux下常用日志分析工具

    Linux下常用日志分析工具 Logcheck简介 对于拥有大量账户.系统繁忙的Linux系统而言,其日志文件是极其庞大的,很多没有用的信息会将值得注意的信息淹没,给用户分析日志带来了很大的不便.现在 ...

  6. Linux 下的格式化输出命令:print

    原文链接:http://blog.csdn.net/zgf19930504/article/details/51912765 printf 是linux 下的格式化输出命令,有点儿类似于python ...

  7. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

    解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...

  8. linux下mysql日志管理及mysql备份还原

    linux下mysql日志管理及mysql备份还原 1.SHOW GLOBAL VARIABLES LIKE '%log%';  显示所有日志相关的选项 2.错误日志:log_error和log_wa ...

  9. linux 日志回滚,Linux 下的日志回滚机制探讨

    在linux下的日志会定期进行回滚,控制系统执行日志回滚操作的配置文件主要有:/etc/logrotate.conf以及/etc/logrotate.d/这个目录下的明细配置文件. /etc/logr ...

最新文章

  1. 70亿美金!英伟达欲竞购这家以色列芯片公司!
  2. Windows server下部署php环境
  3. 原理分析之四:一次SQL查询的源码分析
  4. 【数字信号处理】基本序列 ( 单位阶跃序列 | 单位阶跃序列与单位脉冲序列关系 | 矩形序列 | 矩形序列与单位阶跃序列关系 | 矩形序列作用 )
  5. 如何正确、高效地阅读源代码?
  6. RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
  7. Java中的读/写锁
  8. ICCV 2019 | 首个镜子分割网络问世,大连理工、鹏城实验室、香港城大出品
  9. 46.贪心算法练习:  区间合并
  10. centos7修复libcrypto.so.10缺失的问题,导致ssh无法运行
  11. 数学建模之向量自回归模型
  12. 小米9se开发版系统回刷MIUI稳定版系统
  13. 如何制作生成GIF?手把手教你生成GIF动态图
  14. 【计算机网络系列】链路层的差错控制与流量控制
  15. 千亿级宠物赛道,卖蚊香的朝云能“掘金”多少?
  16. 论文阅读:CVPR2016 Paper list
  17. One PUNCH Man——变量显著性检验
  18. Systemback更改默认存储目录/home,并在Ubuntu18创建大于4G的Linux镜像教程
  19. 计算机网络自顶向下方法 第三章 作业习题答案
  20. Autodesk maya for Mac(三维动画制作软件)

热门文章

  1. c++全局变量的正确声明
  2. swift5的SnipKit框架使用
  3. linux qt 添加动态链接库_Qt 连接MySql数据库
  4. 手机outlook刷新不出邮件_网页端Outlook推Spaces功能:轻松整合邮件、会议和文档...
  5. html path属性,HTML Location pathname用法及代码示例
  6. 反走样和OpenGL多重采样
  7. Android开发之常用的自定义输入框之EditText
  8. listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法
  9. mysql 崩溃恢复_超详细的MySQL数据库InnoDB崩溃恢复机制总结
  10. java并发中的延迟初始化