美文网首页
centos7(4)之日志定时清理

centos7(4)之日志定时清理

作者: feecool | 来源:发表于2018-03-27 13:42 被阅读0次

    本文主要介绍的是Linux使用定时任务每周定时清理45天以前日志。服务器每天会产生很大的日志文件,为了不使硬盘被日志文件塞满,因此需要定期清理日志文件。这时我们可以写一个shell脚本用来清理某个路径下45天以前的日志,然后再设置一个定时任务每周定时执行这个脚本即可。

    ①清理某个路径下的日志脚本delOldLogs.sh:

    [root@prx01 cleanlog]# vim /usr/local/cleanlog/delOldLogs.sh

    #!/bin/sh

    #删除输入路径下的修改时间在45天以前的日志文件

    find $1 -mtime  +45  -name "*log*" -exec rm -f  {}  \;

    这段代码不难理解,就是清理参数1所在的路径下的修改时间在45天以前的日志文件

    说明:  

    find:Linux查找命令,用户查找指定条件的文件  

    /home/logs/:需要进行清理的目标目录  $1  清理参数1所在的路径下

    -mtime:标准语句写法  

    +10 :数字代表天数  

    -name "*.log.*":目标文件的类型,带有log的所有文件  

    -exec:固定写法  

    rm -rf:强制删除包括目录在内的文件  

    {} \;:固定写法,一对大括号+空格+\+; 

    ②指定清理哪些路径的日志的脚本del_all_OldLogs.sh:

    [root@prx01 cleanlog]# vim /usr/local/cleanlog/del_all_OldLogs.sh

    #!/bin/bash

    /usr/local/cleanlog/delOldLogs.sh "/home/usr/ewp/logs"

    /usr/local/cleanlog/delOldLogs.sh "/home/usr/h5/logs"

    /usr/local/cleanlog/delOldLogs.sh "/home/usr/Payment/logs"


    ③给脚本添加执行权限:

    [root@prx01 cleanlog]# chmod a+x /usr/local/cleanlog/del*.sh

    ④添加定时任务:

    [root@prx01 cron]# vim /var/spool/cron/root

    10 0 * * 6  /usr/local/cleanlog/del_all_OldLogs.sh

    注:

    为了防止出现权限不够的情况,因此这里设置了一个root用户的定时任务

    这句代码的意思是:在每周6的0:10执行/usr/local/cleanlog/del_all_OldLogs.sh 这个脚本

    ⑤查看定时任务:

    [root@app05 logs]# crontab -l

    相关文章

      网友评论

          本文标题:centos7(4)之日志定时清理

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