[关闭]
@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

新建一个任务计划,每天执行一次。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注