Linux服务器中很多应用不断的输出日志,对服务器的硬盘是一个很大的考验。梁旭之前也分享过一篇文章,介绍了如何让应用程序在后台执行:linux后台执行命令:&和nohup的用法通过上面的方法,应用程序的日志会一直输出到日志文件myout.txt,这个文件也会不断增加,一直吃到服务器硬盘。但是,我们都知道日志对我们来说非常重要。如果应用程序出现错误或服务器宕机,我们必须使用日志文件进行调试或进一步分析。因此,不能简单地删除日志文件。这时候我们想到,如果能把日志文件拆分出来就好了,这样就可以留下重要的日志,删除不需要的日志。下面将详细描述该方法。我们可以每天拆分日志。如果是这种情况,为了避免混淆,我们拆分的日志应该带有日期。当然,我们可以通过如下语句获取日期:current_date=`date-d"-1day""+%Y%m%d"`date-d"-1day"表示获取上一个日期day,表示我们今天操作的话正在切割昨天的日志。+%Y%m%d是具体的日期格式,即年月日格式,例如:20181005。接下来我们再次切日志。split-b65535000-d-a4myout.txt./log/log_${current_date}_其中65535000为60M,即日志文件按照60M的大小进行切割,大小可以自定义.-d-a4表示文件后缀为4位。我们把文件切好后,需要按顺序编号,比如0000、0001、0002……其中的4代表位数。之后,./log/log${current_date}是切割日志文件的前缀,其中包含当前日期。所以,最终的输出格式类似于:log_20181005_0001。日志文件被切割后,日志文件可以被删除,否则切割文件的意义就没有了。删除的方法可以使用如下方式:cat/dev/null>nohup.out将以上命令写成脚本,每天运行一次,可以将日志文件切割成几部分,方便我们查看.完整代码如下:#!/bin/bashcurrent_date=`date-d"-1day""+%Y%m%d"`split-b65535000-d-a4/home/alvin/myout.txt/home/alvin/log/log_${current_date}_cat/dev/null>nohup.out更多精彩内容请关注公众号良旭Linux,在公众号回复1024免费获得5T技术资料,包括:Linux,C/C++,Python,RaspberryPi,Embedded,Java,AI等公众号回复加群,邀你加入达人如云技术交流群。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站
