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

2018-08-03  本文已影响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定时任务中去执行即可。

上一篇下一篇

猜你喜欢

热点阅读