根据磁盘空间清理日志文件

目前几乎所有的程序都有系统操作日志的保存,可一旦磁盘空间满了的时候,应该如何清理指定时间的日志文件呢?

大家一般采取的解决方案都是定时保存指定时间的日志,可这种解决方案也有一些缺点,比如还没有达到指定日期的触发条件时,可这个时候磁盘空间满了的时候,应该如何避免这种情况呢?

下面我采取的方案是每天定时检查磁盘空间的变化,一旦小于指定的空间时,就通过任务去执行cmd批处理文件,让其直接清理日志文件,如下:

:: Clear log files
@echo off
title Clear NewRetail Log files
::查看磁盘空间,FreeSpace保存的是剩余空间
wmic LogicalDisk where "Caption='D:'" get FreeSpace,Size /value

:: Log folder
set log_dir="D:NewRetailLogs"
 
:: 保留日志天数
set bak_dat=15
 
:: Clear Log files,通过判断剩余空间清理指定目录的日志文件
if FreeSpace LEQ 2000000 forfiles /p %log_dir% /S /M *.log /D -%bak_dat% /C "cmd /c echo 正在删除@relpath 文件… & echo. & del @file"

  

原文地址:https://www.cnblogs.com/zunzunQ/p/13998857.html