Linux系统下nohup日志文件按日期分割展示

基于普元EOS系统nohup.out日志文件优化

效果展示:

日志列表
如上图,优化后nohup.out日志文件按照日期进行展示。
思路: 编写脚本,每日凌晨将前一天的日志复制到备份文件夹,并按前一天日期进行命名,然后清空原始nohup日志,这样日志只记录当天的日志。
工具: Xshell、Xftp(非必须)

步骤:

  • 创建备份文件夹并授权;

#创建备份文件夹,路径按自己路径更改
[root@localhost /]# mkdir -p /data/primeton/eos/nohuplog
#给文件夹授权
[root@localhost /]# chmod -R 777 /data/primeton/eos/nohuplog

注:
1.路径没再标识,自己按自己实际路径修改创建即可。
2.不授权会报错:permission denied,文件权限不足。不建议生产环境授777权限,权限太大,也有其他授权方法自己百度,我用的下面xftp,自己勾选权限,见下图

授权

  • 创建并编写脚本文件

[root@localhost /]# vi /data/primeton/eos/nohuplog/nohup.sh

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

[root@localhost /]# chmod -R 777 /data/primeton/eos/nohuplog/nohup.sh

注:
1.该脚本文件也需要授权;
2.建议以上面方式创建脚本,我第一次是在本地windows系统创建nohup.sh,执行时报错:M: bad interpreter: No such file or directory。这是因为windows系统创建的sh脚本默认为dos格式,而Linux执行的是unix格式的脚本,不能对其识别。
解决方法:
[root@localhost /]# vi /data/primeton/eos/nohuplog/nohup.sh #打开文件
:set ff #查看格式,正确应为fileformat=unix,我的之前显示dos
:set ff=unix #更改成unix

  • 编写系统任务计划

#编写计划
[root@localhost /]# vi /etc/crontab

0 0 * * * root /data/primeton/eos/nohuplog/nohup.sh #每天凌晨执行脚本
:wq! #保存并退出

#重启crond
[root@localhost /]# service crond restart

系统计划

  • 结束

结语:

初识sh,此方法仍有很多不足之处,希望大神批评指正,有问题欢迎交流学习,共同进步,谢谢!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值