无论是在windows下还是linux下,好多的日志文件若果不定时删掉会饱含硬碟,所以可以分别写个脚本定时处理一下,下边我来给你们介绍Linux与Windows中定时删掉某日前日志文件脚本,并且做定时任务执行这个脚本,亮总系统中都很简单,自己百度即可找到。
一、Windows下bat文件内容如下;
1、代码如下:
@echo off
forfiles -p "D:serversapache2.2logs" -s -m *.log -d -15 -c "cmd /c del @path"
forfiles -p "D:serversmysqllogs" -s -m *.log -d -15 -c "cmd /c del @path"
可以将里面的目录换成你想删掉的指定的目录
*.log可以筛选一下文件格式
-d旁边的参数为正数表示多少天之前的linux删除前10个文件,负数是多少天以后的
最后保存成bat文件linux vi命令,之后在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、保存指定后缀linux格式化硬盘,添加权限,设置定时任务
将里面的内容保存成.sh,两个疗效都是一样linux删除前10个文件,任选其二,并使用chmod+x添加可执行权限,之后放在crond定时任务中去执行即可。