菜单

波波
发布于 2020-03-20 / 0 阅读
0

Linux定时任务切割日志

第一步:

在你服务器创建或者找个文件夹用来存放脚本。 我在 /opt/sh/ 文件夹下创建的

第二步:

创建sh脚本,如auto-cut-log.sh

# 复制日志文件内容到新的文件中
cp /opt/springboot/springboot-core-log.txt /opt/logback/logs/springboot_`date -d '-1 days' +%Y%m%d`.out

# 清空tomcat默认日志输出文件
echo "" > /opt/springboot/springboot-core-log.txt

# 如果有多个tomcat,复制一份即可
#cp /opt/softinstall/tomcat_gxj_02/logs/catalina.out /opt/softinstall/tomcat_gxj_02/logs/catalina_`date -d '-1 days' +%Y%m%d`.log
#echo "" > /opt/softinstall/tomcat_gxj_02/logs/catalina.out

# 查找并清理不需要的文件
find /opt/logback/logs/ -mtime +10 -name "*" -exec rm -rf {} \;

第三步

给sh脚本Chrom权限

chmod -R 777 /opt/sh/auto-cut-log  # 授权,便于执行脚本

第四步

备份元日志

cp /opt/springboot/springboot-core-log.txt 
 /opt/springboot/springboot-core-log.back.txt     # 备份 springboot-core-log.back.txt 为备份之后的文件

第五步

执行编写的切割脚本

./auto-cut-log.sh

执行完成后,如果原来的日志被切割了,并且在指定的目录下也生成了

[root@iZbp18nyz28va2zwadft2qZ logs]# ll
total 252
-rw-r--r-- 1 root root 11497263 Mar 20 09:14 springboot_20200319.out
[root@iZbp18nyz28va2zwadft2qZ logs]# 

那么说明就切割成功了

第六步

把sh脚本添加到系统的定时任务下

crontab -l # 查看当前是否存在任务
crontab -e # 编辑 指定执行哪个脚本以及执行时间
0 0 * * * /opt/sh/auto-cut-log.sh     # 每日凌晨执行分割日志脚本

文件添加成功后,在用crontab-l看下是否有添加成功。成功就是这样的 [root@iZbp18nyz28va2zwadft2qZ logs]# crontab -l 0 0 * * * /opt/sh/auto-cut-log.sh