美文网首页
Windows和Linux下删除某天前日志文件的脚本

Windows和Linux下删除某天前日志文件的脚本

作者: 靜默 | 来源:发表于2018-08-03 17:52 被阅读109次

    无论是在windows下还是linux下,很多的日志文件如果不定时删除会充满硬盘,所以可以分别写个脚本定时处理一下,下面我来给大家介绍Linux与Windows中定时删除某天前日志文件脚本,但是做定时任务执行这个脚本,亮总系统中都很简单,自己百度即可找到。

    一、Windows下bat文件内容如下;

    1、代码如下:

    @echo off
    forfiles -p "D:\servers\apache2.2\logs" -s -m *.log -d -15 -c "cmd /c del @path"
    forfiles -p "D:\servers\mysql\logs" -s -m *.log -d -15 -c "cmd /c del @path"
    

    可以将上面的目录换成你想删除的指定的目录
    *.log可以筛选一下文件格式
    -d后面的参数为负数表示多少天之前的,正数是多少天之后的
    最后保存成bat文件,然后在Windows计划任务里面设置每天执行的时间就可以了。

    二、Linux下面的shell文件内容如下:

    1、代码如下:

    #!/bin/bash
    # 删除30天之前的r日志文件
    find /varlog/nginx/ -mtime +30 -type f -name \*.log | xargs rm -f
    

    同样的将上面的目录换成自己指定的目录,后面的*.log表示文件扩展名,
    -mtime后面的参数与上面Windows的相反,正数表示多少天之前的文件。

    2、代码如下:

    #!/bin/bash
    # 删除30天之前的r日志文件
    find /var/log/nginx/ -mtime +30 -name "*log*" -exec rm -f {} \;
    

    说明:
    将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
    find:linux的查找命令,用户查找指定条件的文件;
    /opt/soft/log/:想要进行清理的任意目录;
    -mtime:标准语句写法;
    +30:查找30天前的文件,这里用数字代表天数;
    ".log":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
    -exec:固定写法;
    rm -rf:强制删除文件,包括目录;
    {} ; :固定写法,一对大括号+空格++;

    3、保存指定后缀,添加权限,设置定时任务

    将上面的内容保存成.sh,两个效果都是一样,任选其一,并使用chmod +x 添加可执行权限,然后放到crond定时任务中去执行即可。

    相关文章

      网友评论

          本文标题:Windows和Linux下删除某天前日志文件的脚本

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