一、为什么要定时清理log文件?

实际工作中,我们部署到服务器的应用可能随时在写入日志,有的应用一天产生的日志就较大,但是磁盘空间有限,所以磁盘常常很快就处于用完状态,并由此产生一些问题,比如服务器上应用可能挂掉,影响生产。

二、如何清理log文件?

估摸着时间就去看看磁盘删删log文件??显然不科学,,这里记录一个高效的方法:编写Linux定时任务脚本,自动清理log日志文件。

1、创建shell脚本文件并赋予执行权限:

[root@aigoV_66 ~]# touch auto_del_sjjk_log.sh    //创建shell文件
[root@aigoV_66 ~]# chmod +x auto_del_sjjk_log.sh   //赋予文件执行权限
关于 chmod +x 命令 :

    Linux下不同的文件类型,其文件名有不同的颜色:
    蓝色表示目录,绿色表示可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其它文件。
    新建的shell文件只是一个灰色的普通文件。
    执行 chmod +x 命令,此时文件变成了绿色,有了可执行权限。
    若再使用 chmod -x 命令,就去除了执行权限。

2、编辑刚创建的shell脚本文件,写入删除命令:

[root@aigoV_66 ~]# vi auto_del_sjjk_log.sh 

#!/bin/sh

find git_workspace/xny/数据接口/target/log/ -mtime +2 -name "*.log" -exec rm -rf {} \;
~                                                                                                                                       
~                                                                                                                                                                                                                                                                                                                                                                                                              
~                                                                                                                                       
-- INSERT --
关于上面命令:

    vi xx.sh :
    编辑xx.sh 脚本文件。
    进入编辑区后,按i键开始编辑,编辑完按Esc键,然后键入冒号:,再输入wq,回车保存退出。

    删除命令部分:
    find    查找命令,查找指定文件。
    git_workspace/xny/数据接口/target/log/    需要清理的文件的目录位置。
    -mtime    标准语句写法
    +2    数字指代天数,即删除2天以前的      -name "*.log.*" -exec rm -rf {} \;
    -name "*.log"    目标文件类型
    -exec    固定写法
    rm -rf    强制删除包括目录在内的文件 
        例: rm -rf abc 将 abc 子目录及子目录中所有档案删除,并且不用确认 :
    {} \;    固定写法

3、将上面shell文件添加到Linux定时任务脚本

[root@aigoV_66 ~]# crontab -e      //进入定时任务编辑页面(编辑保存方法同上)

0 23 * * * /root/syncsystemtime.sh
05 01 * * * sh /root/project/rm.sh
0 01 * * * /root/auto_del_sjjk_log.sh    //每日凌晨一点执行该删除日志的脚本文件
~                                                                                                                                       
~                                                                                                                                       
                                                                                                                                   
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
"/tmp/crontab.zvmT2t" 3L, 106C

进过上面一番操作后,服务器会在每日凌晨一点自动执行清理日志的操作。