【Windows和Linux下定时删除某天前的文件的脚本】

时间:2022-09-12 07:58:23

Windows下bat文件内容如下;

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

真实例子:
@echo off
forfiles -p "G:\db2back" -s -m TRANSFER* -d -1 -c "cmd /c del @path"

作用:
定时删除此目录下的TRANSFER*的文件。

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

代码如下:
#!/bin/bash
# 删除10天之前的文件
find /var/usr/nginx/logs/ -mtime +10 -type f -name \*.gz | xargs rm -f

同样将上面的目录换成实际的目录,后面的\*.gz表示文件扩展名,-mtime后面的参数与上面Windows的相反,正数表示多少天之前的文件。将上面的内容保存成.sh并使用chmod +x 设置成可执行权限,然后放到crontab定时任务中去执行即可。


本文出自 “花之旭的博客” 博客,转载请与作者联系!