定时清理tomcat日志文件

原文链接:https://blog.csdn.net/qq_37936542/article/details/78788466

需求:最近公司服务器发现磁盘经常会被占满,查其原因是因为大量的日志文件。所有需要每天定时去清理过期的日志文件


一:编写脚本

  1. [root@localhost home]# vim clean_catalina.sh  

添加内容如下:
  1. # 删除 /opt/java/tomcat7/logs/下5天前,文件名称包含"201"的logs  
  2. find /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;  
  3.   
  4. # 清空 /opt/java/tomcat7/logs/下的catalina.out  
  5. echo " " > /opt/java/tomcat7/logs/catalina.out  


二:设置定时执行clean_catalina.sh脚本

  1. [root@localhost home]# crontab -e  

添加内容如下:
  1. 10 0 * * * /home/clean_catalina.sh  



三:使用 crontab -l 命令查看是否设置成功
  1. [root@localhost home]# crontab -l  
  2. 10 0 * * * /home/clean_catalina.sh  



详解 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就是所要执行的程序,如haha.sh。
M:分钟(0-59)
H:小时(0-23)
D:日期(1-31)
m:月份(1-12)
d:一个星期中的某天(0-6,0代表周日)
 
这5个时间字段用空格隔开,其值可以是一个数字,也可以用逗号隔开的多个数字(或其他) ,如果不需设置,则默认为“*”。
 
例如,每天的8点5分执行haha.sh,就是“5 8 * * * /opt/./haha.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 /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;

查找出符合条件的日志文件并删除


文末福利:

福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880

福利二:微信小程序入门与实战全套详细视频教程

【领取方法】

关注 【编程微刊】微信公众号:

回复【小程序demo】一键领取130个微信小程序源码demo资源。

回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。


image

90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。




posted @ 2018-03-27 09:56  祈澈姑娘  阅读(368)  评论(0编辑  收藏  举报