@hzl201
2019-05-17T11:01:53.000000Z
字数 719
阅读 1047
运维
数据库
脚本
写了一个win下的自动删除数据库备份的脚本,以后就可以自动删除,不需要人工干预。
代码如下:
@echo off
for /f "tokens=2* delims=:" %%a in ('fsutil volume diskfree e:') do set ds=%%a
set "d1=%ds:~,-6%"&set "d2=%ds:~-6%"
set/a "ds=((d1>>10)*1000000+d2)>>10>>10"
echo 当前e盘剩余空间为%ds%G
if %ds% lss 20 (
forfiles /p E:\数据库备份\差异备份\LKJT_Base_1.4.8 /s /d -90 /m *.bak /c "cmd /c del /f /s /q @file"
forfiles /p E:\数据库备份\完整备份\LKJT_Base_1.4.8 /s /d -90 /m *.bak /c "cmd /c del /f /s /q @file"
echo 执行磁盘清理,删除早期的数据库备份
) else (
echo 当前e盘剩余空间充足,脚本将不进行任何操作。
)
echo 执行完毕。此脚本将于10秒后自动关闭!
ping 127.0.0.1 -n 10 >nul
使用方法是新建一个freespace的bat文件。把代码复制进去,修改需要监控哪个盘,在fsutil volume diskfree e:里把e改为其他的盘符。
if %ds% lss 20的单位是G,可以指定磁盘空间小于多少G时开始删文件。
forfiles /p E:\数据库备份\差异备份\LKJT_Base_1.4.8 /s /d -90 /m *.bak /c "cmd /c del /f /s /q @file" -90改为其他的,如60天前,就是-60
新建一个任务计划,每天执行一次。