zoukankan      html  css  js  c++  java
  • 日志清理脚本

    newalanhost:[/home/newalan/bin]crontab -l 
    0 2 * * * /home/newalan/bin/cleanlog.sh 

    用crontab来定时调这个脚本,以上设置每日的凌晨2点0分执行 

    newalanhost:[/home/newalan/bin]cat /home/newalan/bin/cleanlog.sh 
    #!/bin/sh 

    #find $HOME/log -mtime +3 -type f  -exec rm -rf {} ; 

    rm -rf $HOME/log/.tmpblog/* 

    #把2天之外的日志del 
    cd $HOME/log 
    for i in `ls -lr|grep ^d|awk '{print $9}'|grep ^2[0-9][0-9][0-9][0-9][0-9][0-9][0-9]$|sed '1,2d'` 
    do 
     rm -rf $i 
    done 

    举例来说 
    newalanhost:[/home/newalan/log]ls -al 
    drwxrwxrwx    2 newalan     cics           4096 Jun 21 08:56 .tmpblog 
    drwxrwxrwx    2 newalan     cics           4096 Jun 20 15:34 20180620 
    drwxrwxrwx    2 newalan     cics           4096 Jun 21 08:27 20180621 
    -rw-r--r--    1 newalan     cics            904 Jun 14 13:52 ARECFG.log.14 
    -rw-r--r--    1 newalan     cics      985822658 Jun 21 08:56 sbl.log 

    该目录/home/newalan/log是日志目录,不过有一些创建规则
    其中红色的以日期命名的目录(
    2018062020180621)每天创建一个,记录当天发生的交易的日志 
        紫色的的目录(.tmpblog)是隐藏目录,记录交易的中间临时信息,只有交易错误时才记录,一般不用看 
        日志文件夹下的其他蓝色文件(ARECFG.log.14 sbl.log)有些是公共的操作记录的日志,或者是不规范的日志,本来应该记录在红色的以日期命令的目录里 
    这三种日志的清理对应脚本中的三种颜色 
    一般  find $HOME/log -mtime +3 -type f  -exec rm -rf {} ;  可以清理大部分日志(语句中设定超过3天前的日志) 
    不过这个语句对于红色的以日期命令的目录,只会删除目录中的文件,不删除目录,导致会遗留很多内空的日期命名的目录,因此这种方式被废弃了,但如果你的日志目录里 
    不存在以日期命名的目录,这个命令还是很好用的。 

    我们代替的方式是用下面的紫色命令和红色命令,紫色很简单,删除隐藏目录(.tmpblog)下的文件, 
    红色的命令的逻辑是,在该目录下按时间逆序(ls -lr)排列的目录(grep ^d,目录名位于第九列$9)中,搜索日期命名的文件夹,并去掉最新的两个(1,2d),即实现了保留最近的 
    两天的日志,其他的全部删除。

  • 相关阅读:
    Redis简介 安装 注册服务
    Supervisor Linux守护进程
    .Net5 控制台 读取配置文件+依赖注入
    Linux Gdip
    Net Core封装 踩坑
    Apollo 公共Namespace使用json
    Visual Studio 2019修改项目名
    【面向对象】--静态类与非静态类的区别
    win10设置默认中英文符号【程序员标配】
    MySQL 数据库访问驱动-版本问题
  • 原文地址:https://www.cnblogs.com/newalan/p/9299729.html
Copyright © 2011-2022 走看看