利用Windows任务计划程序定期删除thinkphp程序runtime下log文件夹

对于runtime文件夹我之前一直想关闭或者不启用,但是无奈不了解thinkphp程序,按照教程貌似也不能关闭,所以就想着定期删除下文件内容,为什么要这么操作呢?因为近期一个项目站点运行资料较多,没办法必须的定期删除,不然磁盘一会就满了,导致程序无法访问,所以才想着用windows自带的任务计划程序来定期删除,使用批处理文件和任务计划程序

利用Windows任务计划程序定期删除thinkphp程序runtime下log文件夹 第1张

创建批处理文件

新建一个文本文件,并将以下内容复制进去:

@echo off
del /q /f /s D:路径runtimelog*
rmdir /s /q D:路径runtimelog
exit

将文件保存为delete_logs.bat,文件名称可自拟。

计划任务

打开“任务计划程序”。

创建新任务,并按照上述步骤设置触发器和操作,但在“程序/脚本”框中指向你创建的批处理文件。不会的可以参考之前写过的一篇文章《Windows2008R2服务器设置自动重启功能的图文详解》,都是利用任务计划程序实现的。

当然如果像我一样想要知道运行是否成功,可以记录运行下日志,在批处理文件中添加一些命令来输出运行时间以及操作结果。以下是一个示例批处理文件,它将删除指定文件夹下的所有内容,并将操作的执行时间及结果记录到日志文件中。

@echo off
set LogFile=D:路径runtimelog_deletion.log

echo [%DATE% %TIME%] Starting log deletion process >> %LogFile%

rem 删除日志文件夹中的所有文件
del /q /f /s D:路径runtimelog* 2>> %LogFile%
if %ERRORLEVEL% EQU 0 (
    echo [%DATE% %TIME%] Deletion of files was successful. >> %LogFile%
) else (
    echo [%DATE% %TIME%] Deletion of files failed. >> %LogFile%
)

rem 删除日志文件夹
rmdir /s /q D:路径runtimelog 2>> %LogFile%
if %ERRORLEVEL% EQU 0 (
    echo [%DATE% %TIME%] Deletion of log folder was successful. >> %LogFile%
) else (
    echo [%DATE% %TIME%] Deletion of log folder failed. >> %LogFile%
)

echo [%DATE% %TIME%] Log deletion process completed. >> %LogFile%
exit

在这个批处理文件中,我们做了以下操作:

设置一个变量LogFile来指定日志文件的路径,目录自拟。

使用echo命令将操作的开始时间、成功或失败的消息以及完成时间追加到日志文件中。

使用del命令删除文件夹中的所有文件,并检查ERRORLEVEL来确定操作是否成功。

使用rmdir命令删除空文件夹,并同样检查ERRORLEVEL。

在每条日志消息前后加上时间戳,格式为[%DATE% %TIME%]。

请将以上内容保存为.bat文件,并通过任务计划程序定期执行它。每次执行时,它都会在指定的日志文件中添加一行记录,告诉你操作何时开始、是否成功以及何时结束。请确保指定的日志文件路径是正确的,并且批处理脚本有足够的权限写入该文件。

注意事项:

在执行删除操作之前,请确保你拥有足够的权限,并且不会意外删除重要数据。定期检查任务以确保它正常运行,可以查看运行文件的记录(如果你设置了的话)

在某些情况下,你可能需要将任务设置为以最高权限运行(以管理员身份)。如果文件夹内有正在使用的文件,可能会出现删除失败的情况,请确保没有程序正在使用这些文件。总之通过上述方案,你可以设置一个自动化的任务来定期删除特定文件夹下的内容,从而有效地管理磁盘空间。好了,有其他问题留言反馈吧~~~