windows下自动删除过期文件的脚本

时间:2022-02-11 15:18:26

windows下自动删除过期文件的脚本

前言

比如日志文件每天都产生,时间长了就会有很大的一堆垃圾。整理一下 定时删除文件的方法。

正文

Windows:

定时删除tomcat日志和缓存。可以保留天数

forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.log /d -5 /c "cmd /c del @path"

forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.txt /d -5 /c "cmd /c del @path"

****   红色的是目录。

绿色是以.log和.txt后缀格式的文件将会被删除。

蓝色是保留的天数,保留天数之内的日志和缓存不会被删除。

创建一个bat文件,按需求修改以上的批处理命令,把修改后的命令放入bat文件, 然后保存。

再通过系统上的任务计划,根据需求自定义创建任务,最后系统自动执行任务,达到自动删除tomcat日志和缓存的目的。

补充说明

在windows server 2003系统中有一个forfiles命令能够查找满足指定条件的文件,下面是这个命令的用法。

forfiles /p <目标目录名> /d <天数> /c <执行的命令>

例:forfiles /p "D:bigantlogs" /s /m *.* /d -3 /c "cmd /c del @path"

解释一下相关参数及命令

/p : 指定开始搜索文件的位置,如果不指定则默认为当前目录。

/m : 文件查找所使用的通配符如代码中的"*.log"则为所有日志文件,当然也可以指定诸如"manmee_*.log"这样以manmee开头的所有日志文件。如果不指定此参数则默认为"*.*"。

/d [{+|-}][{|}] : 指定想选择文件的最后修改时间,上文中用了 "/d -7" 表示所有以当天为基础,7天以前的文件。当然这里还可以指定具体时间,例如:"/d -08/18/2009"这样所有早于2009年8月18日的文件。注意指定的时间必须是"MM/DD/YYYY"的格式。

/c 对所有文件以此执行指定的命令,命令体须在双引号(")内。

补充: 利用windows的任务计划自动重启tamcat程序:

  1. 单击“开始”按钮,然后依次选择“程序”→“附件”→“系统工具”→“任务计划”(或者是“设置”→“控制面板”→“任务计划”),启动“添加任务计划”。

windows下自动删除过期文件的脚本

2.在弹出页面中,选择“创建基本任务”,效果如下,输入名称、描述。下一步

windows下自动删除过期文件的脚本

3.创建触发器,选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击“下一步”按钮。

windows下自动删除过期文件的脚本

4.设置此任务计划需要执行的脚本或程序(自定义脚本)。

windows下自动删除过期文件的脚本

5.点击完成,任务完成。可以在该定时任务中查看详情。

windows下自动删除过期文件的脚本

Linux:

定时清理7天前的Tomcat日志脚本

#!/bin/bash

logs_path="/tomcat/tomcat-token/logs"

find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;

find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;

find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;

find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;

find $logs_path -mtime +7 -name "fileservice.log.*" -exec rm -rf {} \;