@echo off
if exist z: net use z: /delete
#如果存在已映射的网络盘则删除它
net use z: \\192.168.42.6\exbak pass83 /user:xon\administrator
#映射网络盘,其中\\192.168.42.6\exbak是网络路径;pass83是密码,xon\administrator是用户名(如果是域环境需要带域名,工作组则需加主机名)
if exist backup.log del backup.log
ipconfig backup.log
C:\BackupScript\blat.exe -install 192.168.42.15
[email protected] #初始化邮件提醒服务,其中192.168.42.15是内部邮件服务器,也可以使用外部,方法类似
if not exist z: (goto Fail) else (goto ok)
:Fail
echo %date%:%time%Backup of UF DataBase of Day Fail backup.log
#将备份时间记入日志文件
echo Network services is not unaccess backup.log
C:\BackupScript\blat.exe C:\BackupScript\backup.log -to
[email protected] -s "Day Backup Fail" -u
[email protected] -pw password
#将backup.log文件发给
[email protected]用户,主题是"Day Backup Fail",如果邮件服务器SMTP需要验证则加-u 用户名 -pw 密码 这些参数做验证,否则无需这两个参数。
goto end
:OK
if exist C:\BackupScript\BackupUF_Day.sql del C:\BackupScript\BackupUf_Day.sql
#建立SQL备份文件,因为MSDE不能自动备份
echo use master; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo Backup database UFDATA_002_2008 C:\BackupScript\BackupUf_Day.sql
#备份数据库UFDATA_002_2008
echo to disk='d:\backup\UFDATA_002_2008_%date:~4,4%%date:~9,2%%date:~12,2%.bak' C:\BackupScript\BackupUf_Day.sql
#设定数据库备份路径的保存路径。其中%date:~4,4%%date:~9,2%%date:~12,2%这个参数是取当天的日期,win2000和winxp两者格式不完全相同。它的意思是从data命令显示出来的数据中从第四位取起连续取四位数据做为第一部份,后面的意思相同。
echo with init,nounload; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo use master; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo Backup database UFDATA_105_2008 C:\BackupScript\BackupUf_Day.sql
echo to disk='d:\backup\UFDATA_105_2008_%date:~4,4%%date:~9,2%%date:~12,2%.bak' C:\BackupScript\BackupUf_Day.sql
echo with init,nounload; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo use master; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo Backup database UFDATA_110_2008 C:\BackupScript\BackupUf_Day.sql
echo to disk='d:\backup\UFDATA_110_2008_%date:~4,4%%date:~9,2%%date:~12,2%.bak' C:\BackupScript\BackupUf_Day.sql
echo with init,nounload; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo use master; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
echo Backup database UFDATA_306_2008 C:\BackupScript\BackupUf_Day.sql
echo to disk='d:\backup\UFDATA_306_2008_%date:~4,4%%date:~9,2%%date:~12,2%.bak' C:\BackupScript\BackupUf_Day.sql
echo with init,nounload; C:\BackupScript\BackupUf_Day.sql
echo go C:\BackupScript\BackupUf_Day.sql
#有关SQL的备份语句的使用方法可以参考:
[url]http://msdn.microsoft.com/en-us/library/ms186865.aspx[/url]
echo Backup DataBase backup.log
echo Waitting..... backup.log
"C:\PROGRA~1\Microsoft SQL Server\80\Tools\Binn\OSQL.exe" -S localhost -U sa -P -i C:\BackupScript\BackupUf_Day.sql -o C:\BackupScript\UF_%date:~4,4%%date:~9,2%%date:~12,2%.log
#调用MSDE安装路径下的命令来实现备份操作,注意参数的大小写。输出备份的状态到log文件中。
if not exist z:\UF mkdir z:\UF
echo %date%:%time%Backup of UFserver DataBase backup.log
echo Waiting...... backup.log
set /a Days=%date:~4,4%%date:~9,2%%date:~12,2%
#使用/a参数可以实现对日期数据的运算
C:\BackupScript\forfiles_20.exe -pd:\backup\ -d-0 -mUF*_2008_%days%.bak -c"cmd /c copy @FILE z:\UF\"
#forfiles_20.exe表示是win2000下版本,它使用的要求比在winxp/win2003下严格,而且两个版本的文件不能通用;还需注意参数的大小写及间隔。该语句的意思是如果d:\backup\下有今天的UF*_2008_%days%.bak文件则copy到z:\UF\。
C:\BackupScript\forfiles_20.exe -pd:\backup\ -d-7 -mUF*_2008_*.bak -c"cmd /c del @FILE"
#删除d:\backup\下超过7天的文件
C:\BackupScript\forfiles_20.exe -pz:\UF\ -d-7 -mUF*_2008_*.bak -c"cmd /c del @FILE"
#删除网络上超过7天的文件
if not exist z:\uf\UF*%days%.bak goto Fail
echo %date%:%time%Day Backup of UF DataBase Sucess backup.log
C:\BackupScript\blat.exe C:\BackupScript\backup.log -to
[email protected] -s "Day Backup UF Sucess" -u
[email protected] -pw P@$$w0rd -attacht C:\BackupScript\UF_%date:~4,4%%date:~9,2%%date:~12,2%.log
#发送状态文件,并将C:\BackupScript\UF_%date:~4,4%%date:~9,2%%date:~12,2%.log作为附件发送。
:end
del backup.log
net use z: /delete
del C:\BackupScript\BackupUf_Day.sql
del C:\BackupScript\UF_%date:~4,4%%date:~9,2%%date:~12,2%.log