Linux服务器Tomcat日志清理、nginx日志清理

前言

由于tomcat下catalina.out日志文件随着时间增长会越来越大,导致服务器磁盘存储空间不足,需要定时清理该日志文件。曾经用过某某切割工具,但是并不好用,所以自己参照网上的一些资料写了一个脚本,特分享如下。

第一步

按照日期备份catalina.out日志文件(nginx的日志文件也采用相同的方式),建立clear_logs.sh文件

#!/bin/bash
datename=$(date -d "-1 day" +%Y%m%d)
#nginx日志处理先复制,然后清空原来的日志
cp /data/tools/nginx/logs/access.log /data/tools/nginx/logs/access.$datename.log
cat /dev/null > /data/tools/nginx/logs/access.log
cp /data/tools/nginx/logs/error.log /data/tools/nginx/logs/error.$datename.log
cat /dev/null > /data/tools/nginx/logs/error.log
#tomcat日志处理 先复制,然后清空原来日志
cp /data/tomcat/tomcat8-pro/logs/catalina.out  /data/tomcat/tomcat8-pro/logs/catalina.$datename.out
cat /dev/null > /data/tomcat/tomcat8-pro/logs/catalina.out

第二步

删除7天前的日志文件(按照自己的业务需求修改)建立dellog.sh文件

#删除文件修改时间为7天前的日志文件
#nginx log file
find /data/tools/nginx/logs/error.*.log -mtime +7 -type f -exec rm -rf {} \;
find /data/tools/nginx/logs/access.*.log -mtime +7 -type f -exec rm -rf {} \;

#catalina.out file
find /data/tomcat/tomcat8-pro/logs/catalina.*.out -mtime +7 -type f -exec rm -rf {} \;

#localhost_access_log.txt file
find /data/tomcat/tomcat8-pro/logs/localhost_access_log.*.txt -mtime +7 -type f -exec rm -f {} \;

#catalina.log file
find /data/tomcat/tomcat8-pro/logs/catalina.*.log -mtime +7 -type f -exec rm -f {} \;

#localhost file
find /data/tomcat/tomcat8-pro/logs/localhost.*.log -mtime +7 -type f -exec rm -f {} \;

第三步

利用Linux定时器定时执行上面两个脚本

#每天0:0:0执行脚本,保证备份当天的日志
0 0 * * * /data/logs/clear_logs.sh
0 0 * * * /data/logs/dellog.sh

以上就是我在我们生产环境配的定时清理脚本,谢谢!

如果有更好的处理方式,欢迎一起讨论。

你可能感兴趣的:(Linux笔记)