美文网首页
shell定时清除linux中的日志文件

shell定时清除linux中的日志文件

作者: cutieagain | 来源:发表于2020-08-07 17:21 被阅读0次

    什么时候需要清除

    磁盘空间容量大于80的时候删除日志文件

    新建可执行文件

    cd /opt
    mkdir clearlogs
    cd clearlogs/
    vim clearlogs.sh
    #授权操作写读
    chmod 777 clearlogs.sh
    

    shell删除日志文件内容

    #!/bin/bash
    logDataPath='/root/logs/daily/' #日志存放目录
    
    #遍历目录查看日志信息
    #for file in `find ${logDataPath} -name "*.log.*"`
    
    #15天以上的日志进行清除
    expireTime=15
    deletefiles() {
        local currentDate=$(date "+%s")
        echo "current date is:" $currentDate
    
        local diskUseRate=$(df -h | grep /dev/vda1 | awk '{print $5}' | tr -d %)
        echo "diskUseRate is:" $diskUseRate
        if [[ $diskUseRate -gt 80 ]]; then
            echo "diskUseRate gt 80"
            echo "clear /opt/jstatd/jstatd.log start"
            echo "" >/opt/jstatd/jstatd.log
            echo "clear /opt/jstatd/jstatd.log end"
            for file in $(find $1 -name "*.log.*"); do
                local name=$file
                local modifyDate=$(stat -c %Y $file)
                local existTime=$(($currentDate - $modifyDate))
                existTime=$(($existTime / 86400))
                #echo "existTime date is:" $existTime
    
                if [[ $existTime -gt $expireTime ]]; then
                    echo "file:" $name + "modifyDate:" $modifyDate + "exist time:" $existTime + "deleted"
                    rm -rf $file
                else
                    echo "file:" $name + "modifyDate:" $modifyDate + "exist time:" $existTime + "not deleted"
                fi
            done
        else
            echo "diskUseRate lt 80"
        fi
    }
    deletefiles $logDataPath
    
    
    
    

    cron定时磁盘清理执行任务

    # 查看crontab服务状态
    service crond status
    #查看定时任务列表
    crontab -l
    #编辑定时任务
    crontab -e
    #每小时执行一次
    * */1 * * * /opt/clearlogs/clearlogs.sh
    

    补充内容

    1、linux的corn表达式只能从分开始
    2、注意`和‘的区别
    3、vim文本tab长度导致查看不方便解决:

    cd ~
    touch .exrc
    vi .exrc
    
    写入:
    set nu
    set tabstop=4
    

    相关文章

      网友评论

          本文标题:shell定时清除linux中的日志文件

          本文链接:https://www.haomeiwen.com/subject/rdrfdktx.html