基于普元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,此方法仍有很多不足之处,希望大神批评指正,有问题欢迎交流学习,共同进步,谢谢!