linux下tomcat被删除,Tomcat 日志自动删除的实现

背景

生产环境中Tomcat每天都会产生很多日志,如果不清理磁盘容量会不够,手动清理又太麻烦。因此写个脚本每天定时去删除5天前(根据实际情况而定)的日志文件。

编写脚本

1.写一个/usr/local/script/cleanTomcatlog.sh脚本

#!/bin/bash

export LANG=zh_CN

#tomcat1日志文件路径

export WEB_TOMCAT1=/usr/local/tomcat1/logs

#tomcat2日志文件路径

export WEB_TOMCAT2=/usr/local/tomcat2/logs

#tomcat3日志文件路径

export WEB_TOMCAT3=/usr/local/tomcat3/logs

echo > ${WEB_TOMCAT1}/catalina.out

echo > ${WEB_TOMCAT2}/catalina.out

echo > ${WEB_TOMCAT3}/catalina.out

find ${WEB_TOMCAT1}/* -mtime +5 -type f -exec rm -f {} \;

find ${WEB_TOMCAT2}/* -mtime +5 -type f -exec rm -f {} \;

find ${WEB_TOMCAT3}/* -mtime +5 -type f -exec rm -f {} \;

2.设置cleanTomcatlog.sh脚本可执行

chmod a+x cleanTomcatlog.sh

3.在控制台上输入以下命令

crontab -e

4.按i键编辑这个文本文件,输入以下内容,每天凌晨4:30重启tomcat

按esc键退出编辑,输入wq回车保存

30 04 * * * /usr/local/script/cleanTomcatlog.sh

按esc键退出编辑,输入wq回车保存

5.重启定时任务

[root@]# service crond stop

[root@]# service crond start

名称解释

详解 crontab 和 find 命令

crontab

通过crontab可以设定程序的执行时间表,例如让程序在每天的8点,或者每个星期一的10点执行一次。

crontab -l 列出时间表;

crontab -e编辑时间表;

crontab -d删除时间表;

“-l”没什么可说的,就是一个查看而已;

“-e”是编辑,和vi没什么差别(其实就是用vi编辑一个特定文件);

“-d”基本不用,因为它把该用户所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;

那到底该如何编辑呢?

crontab文件的格式是:M H D m d CMD。

一个6个字段,其中最后一个CMD就是所要执行的程序,如cleanTomcatlog.sh。

M:分钟(0-59)

H:小时(0-23)

D:日期(1-31)

m:月份(1-12)

d:一个星期中的某天(0-6,0代表周日)

这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。

例如,每天的04点30分执行cleanTomcatlog.sh,就是==30 04 * * * /usr/local/script/cleanTomcatlog.sh==。

find

基本格式:find  path expression

1.按照文件名查找

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

(2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf

(3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

(4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

2.按照文件特征查找

(1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)

(2)find / -atime -2   # 查找在系统中最后48小时访问的文件

(3)find / -empty   # 查找在系统中为空的文件或者文件夹

(4)find / -group cat   # 查找在系统中属于 group为cat的文件

(5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

(6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件

(7)find / -user fred   #查找在系统中属于fred这个用户的文件

(8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

(9)find / -size -1000k   #查找出小于1000KB的文件

3.可以对查找到的文件在进行操作

-exec command;

查找并执行命令

-fprint file

打印文件完整文件名

-fprintf file format

打印文件格式

-ok command;

给用户命令执行操作,根据用户的Y 确认输入执行

-ls

打印同种文件格式的文件.

例如:

find / -name "*xxx*" -ls

查找根目录下名称包含xxx的文件并显示信息

find /usr/local/tomcat1/logs/  -mtime +5 -name "*201?*" -exec rm -rf {} \;

查找出符合条件的日志文件并删除所有的时间表都删除了,一般都是用“-e”编辑把不要了的时间表逐行删除;

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值