Linux下nohup日志输出过大问题解决方案
转载自:http://blog.csdn.net/shawnhu007/article/details/50971084
最近在一hadoop测试集群运行一个spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件大小:
1、nohup命令解释:
a、语法:nohup [command] [args] [&]
b、说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部,如果不指定重定向,则日志默认输出到当前目录下nohup.out文件中,
一般提交如 :nohup ./execute.sh & 这样日志或输出当前运行目下.nohup.out中
重定向: nohup ./execute.sh > /home/xxx/log.log 2>&1 & :这样日志会重定向到指定目录下
2 、切分nohup.out,同时不让它无限增长
我这里用的一般提交命令:nohup ./execute.sh &,这样在当前目录就有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开始,具体可以百度split命令用法),最终输出格式为log_20160610_0001
cat /dev/null > nohup.out (该命令会瞬间清空nohup.out文件,后续会继续写该文件),将日志定向到/dev/null中
使用重定向输出一样可以这样,只不过换成重定向的文件名即可
将这些命令定义在一个shell文件每天定时运行即可,这样每天日志会被分成若干份,排查也方便,而且如果日志积压过大的话。可以定时删除历史的日志,保留近几天即可
整体代码如下:
- #!/bin/sh
- #################启动日志切割服务#################
- this_path=$(cd `dirname $0`;pwd)
- cd $this_path
- echo $this_path
- current_date=`date -d "-1 day" "+%Y%m%d"`
- echo $current_date
- split -b 65535000 -d -a 4 /home/.../nohup.out /home/.../log/log_${current_date}_
- cat /dev/null > nohup.out
Linux下nohup日志输出过大问题解决方案的更多相关文章
- linux下nohup日志切割方案
1.nohup命令解释: a.语法:nohup [command] [args] [&] b.说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂 ...
- Linux下重要日志文件及查看方式
http://os.51cto.com/art/201108/282184_all.htm 1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的 ...
- linux下syslog-ng日志集中管理服务部署记录
syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点 ...
- Linux下rsyslog日志收集服务环境部署记录【转】
rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...
- Linux下重要日志及查看方式
1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示: 图1 /var/log/boot. ...
- linux下的日志压缩脚本
linux下的日志压缩脚本: #!/bin/bash #第一步:先定义项目列表如下: projects="project-a project-b project-c project-d&qu ...
- Linux下rsyslog日志收集服务环境部署记录
rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...
- Linux下Rsyslog日志远程集中式管理
Rsyslog简介 Rsyslog的全称是 rocket-fast system for log,它提供了高性能,高安全功能和模块化设计.rsyslog能够接受从各种各样的来源,将其输入,输出的结果到 ...
- 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
本文摘自:(http://blog.csdn.net/stevencn76/article/details/6246162) 分类: Java技术专区2011-03-13 12:25 5017人阅读 ...
随机推荐
- python django字段类型
<1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符 ...
- 2017第八届蓝桥杯C/C++ B组省赛-购物单
标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折 ...
- [转]一文读懂《梁宁·产品思维30讲》最精华内容(含全套PPT)
http://chuansong.me/n/2294260949029 8 年前,我的主业是产品经理,产品思维改变了我认识世界的方式,让我明白司空见惯的设计,也有其底层逻辑. 几年后我接触培训.运营自 ...
- npm 包管理器的使用
1. 权限问题 Warning "root" does not have permission to access the dev dir · Issue #454 · nodej ...
- Python之路,第一篇:Python入门与基础
第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...
- xdoj1194----(bsgs-用数组实现链表 真的是好啊)
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...
- xdoj-1057(Lucas定理的证明及其模板)
Lucas定理的证明: 转自百度百科(感觉写的还不错) 首先你需要这个算式: ,其中f > 0&& f < p,然后 (1 + x) nΞ(1 + x) sp+q Ξ ...
- 图片上传并回显Ajax异步篇
图片上传并回显Ajax异步篇 图片如何无刷新的上传到服务器呢?继前两篇文章后,我们来实战一下如何无刷新的异步上传图片,我们还是先看一下效果 在实战前呢,我们需要做些准备工作.比如说,了解一下FormD ...
- htm基础知识,css的链入以及标签分类。
<!DocTYPE> DOC--Document 文档 TYPE 类型 文档类型 告诉浏览器这是什么文件 单标签: meta 设置 charset 设置编码 双标签: 开始 ...
- PTA——支票面额
PTA 7-38 支票面额 #include<stdio.h> int main() { int n,f,y; ; scanf("%d",&n); ; flag ...