先亮出一个备份批处理脚本。


@echo off
::备份计划
::   停止IIS服务,备份IIS文件夹。
::   停止数据库服务,备份数据库。
::   备份apache的配置文件。
::   备份tomcat的配置文件。
::   备份tomcat的webapps目录。
::
:: 部署计划
::   覆盖或者新加IIS文件夹。
::   变更数据库结构,导入基础数据。
::   修改apache配置文件。
::   修改tomcat配置文件。
::   覆盖或者新加tomcat文件夹。
::----------------------------------
::最终备份的目录是
::d:\dsnbackup\year.month.day.hour.minute\env
::例如:
::D:.
::└─2013.06.17.08.53
::    └─www
::        ├─sqlserver
::        ├─tomcat
::        │  ├─ap
::        │  └─ttsn
::        ├─wcf
::        └─web
::-----------------------------------
::备份文件存放的驱动盘
@set driver=D:
set mpath=dsnbackup
::env环境变量,例如210,230,www,demo,代表一种系统运行环境
set env=www
set mypath=""
set webpath="c:\inetpub\web"
set wcfpath="c:\inetpub\wcf"
set appath="d:\apache-tomcat-6.0.36-windows-x64\apache-tomcat-6.0.36\webapps\ap"
set ttsnpath="d:\apache-tomcat-6.0.36-windows-x64\apache-tomcat-6.0.36\webapps\ttsn"
set isBackupSQLServer="1"
set isBackupIISWcf="1"
set isBackupIISWeb="1"
set isBackupApacheConf="1"
set isBackupTomcatConf="1"
set isBackupTomcatAp="1"
set isBackupTomcatTTSN=""
::如果D盘不存在,则设置备份在C盘
if not exist %driver% (
  set driver=c:
)
:: echo %driver%
@set mytime=%time%
@set mydate=%date%
@set myyear=%mydate:~0,4%
:: echo %myyear%
@set mymonth=%mydate:~5,2%
@set myday=%mydate:~8,2%
@set myhour=%mytime:~0,1%
if "%myhour%"==" " (
  @set myhour=0%time:~1,1%
) else (
  @set myhour=%time:~0,2%
)
@set myminute=%mytime:~3,2%
::@set mysecond=%mytime:~6,2%
::@set mypath=%myyear%.%mymonth%.%myday%.%myhour%.%myminute%.%mysecond%
@set mypath=%myyear%.%mymonth%.%myday%.%myhour%.%myminute%
::echo %myyear%.%mymonth%.%myday%.%myhour%.%myminute%.%mysecond%
::echo %mypath%
set fpath=%driver%\%mpath%\%mypath%\%env%
::echo %fpath%
md %fpath%
echo ----------------------------------
::备份web
echo 开始备份 IIS WEB
echo -----
md %fpath%\web
xcopy /E /Y /C /Q %webpath% %fpath%\web
echo -----
echo 备份 IIS WEB 完成
echo ----------------------------------
::备份wcf
echo 开始备份 IIS WCF
echo -----
md %fpath%\wcf
xcopy /E /Y /C /Q %wcfpath% %fpath%\wcf
echo -----
echo 备份 IIS WCF 完成
echo ----------------------------------
::备份ap
echo 开始备份 tomcat ap
echo -----
md %fpath%\tomcat\ap
xcopy /E /Y /C /Q %appath% %fpath%\tomcat\ap
echo -----
echo 备份 tomcat ap 完成
echo ----------------------------------
::备份ttsn
echo 开始备份 tomcat ttsn
echo -----
md %fpath%\tomcat\ttsn
xcopy /E /Y /C /Q %webpath% %fpath%\tomcat\ttsn
echo -----
echo 备份 tomcat ttsn 完成
echo ----------------------------------
::------------------------------------------------------------
::备份SQL Server
::创建备份目录
set dbpath=sqlserver
md %fpath%\%dbpath%
::--------------------------设置变量
::服务器名
@set dbserver=192.168.0.210
md \\%dbserver%\%driver:~,1%$\%mpath%\%mypath%\%env%\%dbpath%
::登陆用户名
@set dbuid=sa
::登陆密码
@set dbpwd=demo
::-------------------------备份数据
::开始执行导出
@echo 开始备份SQL Server
echo -----
set dbbaksql=backup database KBDSN TO DISK='%fpath%\%dbpath%\KBDSN.bak'
sqlcmd -S %dbserver% -U %dbuid% -P %dbpwd% -Q "%dbbaksql%"
set dbbaksql=backup database KBDSN_Market TO DISK='%fpath%\%dbpath%\KBDSN_Market.bak'
sqlcmd -S %dbserver% -U %dbuid% -P %dbpwd% -Q "%dbbaksql%"
set dbbaksql=backup database KBDSN_ProductHis TO DISK='%fpath%\%dbpath%\KBDSN_ProductHis.bak'
sqlcmd -S %dbserver% -U %dbuid% -P %dbpwd% -Q "%dbbaksql%"
set dbbaksql=backup database KBDSN_Special TO DISK='%fpath%\%dbpath%\KBDSN_Special.bak'
sqlcmd -S %dbserver% -U %dbuid% -P %dbpwd% -Q "%dbbaksql%"
set dbbaksql=backup database KBDSN_XFD TO DISK='%fpath%\%dbpath%\KBDSN_XFD.bak'
sqlcmd -S %dbserver% -U %dbuid% -P %dbpwd% -Q "%dbbaksql%"
::-------------------------完成备份
echo -----
@echo SQL Server备份成功
echo ----------------------------------
xcopy /E /Y /C /Q \\%dbserver%\%driver:~,1%$\%mpath%\%mypath%\%env%\%dbpath% %fpath%\%dbpath%
::如果需要让客户确认,请去掉下面代码前面的::注释符。
echo ----------------------------------
@pause


上面的备份脚本有几个需要注意的地方。

1、sqlcmd

   sqlcmd是在安装了SQL Server 2005甚至更高版本的时候才具有的console命令。所以sqlcmd必须在安装了SQL Server 2005甚至更高版本的数据库的机器才可以运行。

2、数据库备份的目录

   SQL Server的backup database命令产生的备份文件是在数据库服务器的文件系统,如果需要拷贝到统一的目录,需要使用xcopy命令。


网站目前的alexa排名。

上线部署那些事3-备份脚本_批处理