标签 脚本 下的文章

服务器磁盘自动清理数据库备份


写了一个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