zoukankan      html  css  js  c++  java
  • 定时清理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后前端妹子,爱编程,爱运营,爱折腾。
    坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。




  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/ting6/p/9725622.html
Copyright © 2011-2022 走看看