由于java部署linux上使用nohup命令进行jar包的部署,详细请移步 查看

nohup java -jar jar项目名称  >> ./log/nohup.out 2>&1 &
会把项目的日志输出在当前目录的log文件中名称nohup.out

1.值对nohup文件过大的问题

针对运行jar指定输出格式是nohup.out文件随着时间变长文件的大小也会变得很大,由于公司的项目没有进行按日期分割nohup.out到现在大小差不多7个G了,伴随而来的问题也比较明显,当项目出现问题进行排错通过grep命令进行查找关键错误内容就会花费很长时间进行搜索
在这里插入图片描述

2.实现原理

我们通过定时备份nohup文件按照日期来保存日志信息,然后在把nohup文件清空,来实现记录当天的数据.
首先我们创建一个.sh文件touch命令创建
在这里插入图片描述
通过ll命令查看文件的权限因为没有x所以没有可执行权限我们通过chmod命令添加权限
chmod命令可以用数字来表示权限如:chmod 777 file
在这里插入图片描述
在这里插入图片描述
输入命令修改权限:chmod 777 splitnohup.sh
在这里插入图片描述
通过pwd获取当前路径,复制路径后面有用
在这里插入图片描述

vi 编辑文件添加命令行

 	#!/bin/sh 
	#获取前一天的日期 
	date=`date -d "yesterday" +%Y_%m_%d` 
	#复制原始nohup.out到备份目录,并以前一天的日期进行命名 
	cp /home/admin/log/nohup.out /home/admin/log/$date.log
	#清空原始nohup.out中的内容
	cat /dev/null > /home/admin/log/nohup.out

在这里插入图片描述

wq保存退出

3.创建linux定时任务

我们创建好了可执行文件我们要让他运行才可以,不然没有效果,我们需要创建linux的定时任务。

编写系统任务计划
输入 vi /etc/crontab
在这里插入图片描述
添加好命令后wq保存退出
在这里插入图片描述
重启crond服务:service crond restart
在这里插入图片描述

4.补充

12-14:日志拆分过多后,虽然方便了排查当天数据,但是文件过多磁盘数据就会变小了,我们应该把多少天之前的日志给删除掉.
使用命令 find 文件路径 -mtime +3 -name '*.log'
解析:
文件路径:需要查询的路径 不添加表示当前目录
-mtime:标志写法
+3:查询3天前的文件 数字代表天数
-name:文件名称符合
‘*.log’:希望查找的数据类型, *表示任何是.log的文件都查询出来

在这里插入图片描述
既然可以查询出来那么我们把12-6号的日志给删除掉
使用以下命令find -mtime +6 -name '*.log' -exec rm -rf {} \;
在原基础上添加-exec rm -rf {} \;执行后删除
可以看出没有12-6的日志文件了,因为他是6天前的文件所以会被查询出来删除掉
在这里插入图片描述
那么我们现在把测试好的命令添加到之前拆分日志的脚本里面
find -mtime +15 -name '*.log' -exec rm -rf {} \;
在这里插入图片描述
wq保存退出,这样每天凌晨就会把15天前的日志进行删除

注意:

记得使用命令查询下crontab是否已经把我们的定时任务添加

crontab -l

可以看出有2个定时任务
在这里插入图片描述

如果是出现no crontab for root则表示添加不成功

如果你已经在 /etc/crontab文件设置了定时命令,但是在crontab -l中没有看见对应的任务,就像我这样.
在这里插入图片描述
已经运行了重启crond服务:service crond restart
在这里插入图片描述
输入命令查看任务:crontab -l
在这里插入图片描述
显示还是没有任务,这样我们的脚本就不会运行

补救方式:

使用命令:

crontab -e

把我们需要运行的脚本粘贴进去,光标处按i进入输入模式,然后在把我们的命令粘贴进去
在这里插入图片描述
然后按esc退出输入模式然后在屏幕最下面输入:wq保存并且退出
在这里插入图片描述
然后在使用命令查看crontab -l
在这里插入图片描述
到这里就ok了
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐