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




  • 相关阅读:
    449. Serialize and Deserialize BST
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    240. Search a 2D Matrix II
    5. Longest Palindromic Substring
    数位DP专题(开坑。
    POJ 2356
    HDU 4055
    HDU 4054
    HDU 1559
  • 原文地址:https://www.cnblogs.com/ting6/p/9725622.html
Copyright © 2011-2022 走看看