根据磁盘空间清理日志文件
目前几乎所有的程序都有系统操作日志的保存,可一旦磁盘空间满了的时候,应该如何清理指定时间的日志文件呢?
大家一般采取的解决方案都是定时保存指定时间的日志,可这种解决方案也有一些缺点,比如还没有达到指定日期的触发条件时,可这个时候磁盘空间满了的时候,应该如何避免这种情况呢?
下面我采取的方案是每天定时检查磁盘空间的变化,一旦小于指定的空间时,就通过任务去执行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:\NewRetail\Logs" :: 保留日志天数 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"