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

无论是在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定时任务中去执行即可。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    O感悟人生O阅读 9,833评论 2 32
  • Linux习惯问题: 在vim编辑时,按了ctrl + s后,再按ctrl + q就可以继续执行了。ctrl + ...
    光着脚的鞋阅读 3,053评论 0 14
  • ——北言 我爱音乐:茶底世界——丢火车 人生这条路上我们走了很久,在疲惫的时候你总在休息的港口离开了蓝天白云,离开...
    刑天舞阅读 231评论 0 0
  • 凝视着前方的夕阳西下 你那渐行渐远的身影 静静地消逝在我的视野之内 虽有千言万语 也无法觅到深处 身边留着一首小诗...
    萌洋洋同学阅读 304评论 0 0
  • 。。
    shhhhhmily阅读 57评论 0 0