数据库备份文件自动压缩脚本
2010-05-26 17:28
543 查看
给大家分享一个数据库备份文件自动压缩脚本,相信大家会遇到这种情况,SQL的备份文件越来越大,而且每天都要备份,磁盘空间完全不够用,每天手动删除又太麻烦,如果服务器数量少还好说,如果服务器数量很多,几十台上百台,手动删除即费时又费力。在这里有一个bat脚本,调用的是7Z压缩软件,(7Z的压缩比率比winrar要高,能更有效的利用空间)这个脚本能自动压缩文件,然后自动删除一段时间前的原备份文件。通过计划任务每天自动执行,最好在凌晨,不会影响服务器的正常运作。
下面是脚本内容:
@echo off
set path=d:\ddt_tool
rem set path=E:\sst27
set data_path=d:\Db_Tank_Back
if exist e:\Db_Tank_Back (set data_path=e:\Db_Tank_Back)
rem 压缩的数据库文件时间,如3天前的
set /a zip_time=3
echo %zip_time%
for /f %%b in ('%path%\datex -o -%zip_time% -fYYYYMMDD') do set /a var1=%%b
for /f %%c in ('%path%\datex -o -%zip_time% -fD') do set /a var2=%%c
%path%\7za.exe a %data_path%\Db_Tank_Copy_%var1%.7z %data_path%\Db_Tank_Copy%var2%.bak
rem 定义删除的数据库文件时间,如4天前的
set /a del_time=4
echo %del_time%
for /f %%d in ('%path%\datex -o -%del_time% -fD') do set /a var3=%%d
rem 定义删除的压缩数据文件时间,如30天前
set /a del_zip=30
echo %del_zip%
for /f %%e in ('%Path%\datex -o -%del_zip% -fYYYYMMDD') do set /a var4=%%e
rem 删除数据文件
del /Q /F %data_path%\Db_Tank_Copy%var3%.bak
del /Q /F %data_path%\Db_Tank_Copy%var4%.7z
exit
在这里设定的是自动删除4天前的原备份文件,自动删除30天前的压缩文件。还有很重要的一点,时间的获取是通过一个外部命令取得的,名字叫“DateX.exe”,要把这个命令和脚本放在同一个目录下。
最后,通过schtasks设置bat脚本每天自动执行!
下面是脚本内容:
@echo off
set path=d:\ddt_tool
rem set path=E:\sst27
set data_path=d:\Db_Tank_Back
if exist e:\Db_Tank_Back (set data_path=e:\Db_Tank_Back)
rem 压缩的数据库文件时间,如3天前的
set /a zip_time=3
echo %zip_time%
for /f %%b in ('%path%\datex -o -%zip_time% -fYYYYMMDD') do set /a var1=%%b
for /f %%c in ('%path%\datex -o -%zip_time% -fD') do set /a var2=%%c
%path%\7za.exe a %data_path%\Db_Tank_Copy_%var1%.7z %data_path%\Db_Tank_Copy%var2%.bak
rem 定义删除的数据库文件时间,如4天前的
set /a del_time=4
echo %del_time%
for /f %%d in ('%path%\datex -o -%del_time% -fD') do set /a var3=%%d
rem 定义删除的压缩数据文件时间,如30天前
set /a del_zip=30
echo %del_zip%
for /f %%e in ('%Path%\datex -o -%del_zip% -fYYYYMMDD') do set /a var4=%%e
rem 删除数据文件
del /Q /F %data_path%\Db_Tank_Copy%var3%.bak
del /Q /F %data_path%\Db_Tank_Copy%var4%.7z
exit
在这里设定的是自动删除4天前的原备份文件,自动删除30天前的压缩文件。还有很重要的一点,时间的获取是通过一个外部命令取得的,名字叫“DateX.exe”,要把这个命令和脚本放在同一个目录下。
最后,通过schtasks设置bat脚本每天自动执行!
相关文章推荐
- 数据库备份文件自动压缩脚本
- WINDOWS脚本(备份数据库+FTP上传+自动删除7天前文件)
- 自动备份mssql server数据库并压缩的批处理脚本
- 用SQL语句定时自动备份SQL SERVER 数据库并将备份文件加密压缩自动下载 (2014-03-17 13:12:26)转载
- 自动压缩备份数据库文件至指定服务器
- linux下自动备份数据库并压缩的脚本
- Linux 下的 PostgreSQL 数据库+文件通用自动备份脚本
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- (windows)python脚本:自动备份并压缩文件,同时删除过期文件
- CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中
- (windows)python脚本:自动备份并压缩文件,同时删除过期文件
- 自动备份mssql server数据库并压缩的批处理脚本
- CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中(转)
- CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中
- SQL SERVER 设置自动备份和删除旧的数据库文件
- 利用作业每周135自动备份指定数据库的脚本(SQLServer)
- SQL2005恢复只有mdf文件的数据库 自动备份数据
- 利用RMAN备份压缩技术对数据库做全备并备份控制文件和归档日志后删除已备份的归档日志
- bat 压缩备份文件 xcopy mysqldump备份文件和数据库
- SQL SERVER 自动备份数据库脚本