批处理 全自动备份数据库(sql server)-2

我做的一个系统需要定时的备份数据库资料,用的是批处理实现
需求:每月23号0点生成,数据库备份资料dmp档案,如果目录中有new.dmp 改名为old.dmp,然后生成新的new.dmp
实现:1  backup.bat文件
if exist c:/new.dmp goto new
 goto export
:export 
echo Database Person exporting...
exp 
system/system@241_Person
 full=y  file=c:/new.dmp  
goto end
 
:new 
echo new
if exist c:/old.dmp goto delete
goto rename
 
:delete
echo delete old.dmp...
del c:/old.dmp
goto  rename
:rename
echo rename ...
ren c:/new.dmp  old.dmp
goto export
:end
echo export data ok.
exit
 
2   at.bat文件:windows服务器定时执行backup.bat
net start schedule
AT 00:00 /every:23,24  D:/DataFile/PERSON/backup.bat
3  服务器开机时自动加入2中的定时服务
在注册表 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
加入 c:/at.bat                   完成
----------------------------------批处理常用命令--------------------------------
echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。 
echo    表示显示此命令后的字符
echo    off 表示在此语句后所有运行的命令都不显示命令行本身
@    与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
call    调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)
pause    运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续 
rem    表示此命令后的字符为解释行,不执行,只是给自己今后查找用的 
  例:用edit编辑a.bat文件,输入下列内容后存盘为c:/a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 
  批处理文件的内容为:         文件表示: 
    echo off            不显示命令行 
    dir c:/*.* >a.txt         将c盘文件列表写入a.txt 
    call c:/ucdos/ucdos.bat    调用ucdos 
    echo 你好            显示"你好" 
    pause              暂停,等待按键继续 
    rem 使用wps           注释将使用wps 
    cd ucdos            进入ucdos目录 
    wps               使用wps   
  批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符 %。 
   %表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。 
  例如,C:根目录下一批处理文件名为f.bat,内容为 format %1 
  则如果执行C:/>f a:    则实际执行的是format a: 
  又如C:根目录下一批处理文件的名为t.bat,内容为 type %1 type %2 
  那么运行C:/>t a.txt b.txt 将顺序地显示a.txt和b.txt文件的内容 
特殊命令
  if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 
if  表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 
1、 if "参数" == "字符串"  待执行的命令 
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if "%1"=="a" format a: 
2、 if exist 文件名  待执行的命令 
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys 
3、 if errorlevel 数字  待执行的命令 
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2  DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码
goto
批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:
goto end 
:end 
echo this is the end
标号用 :字符串 表示,标号所在行不被执行
choice
使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
例如,test.bat的内容如下: 
@echo off 
choice /c:dme defrag,mem,end 
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem 
if errotlevel 1 goto end 
:defrag 
c:/dos/defrag 
goto end 
:mem 
mem 
goto end 
:end 
echo good bye
此文件运行后,将显示 
defrag,mem,end[D,M,E]?
 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
for
循环命令,只要条件符合,它将多次执行同一命令。 
格式FOR [%%f] in (集合) DO [命令] 
只要参数f在指定的集合内,则条件成立,执行命令 
如果一条批处理文件中有一行: 
for %%c in (*.bat *.txt) do type %%c 
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
NT Server的AT命令详解 
   Windows NT Server的服务程序管理器只能设置某项服务的启动方式(自动、手动、失效),而在日常管理工作中,常常要求某项服务能定时开启、关闭。Windows NT Server提供的AT命令能够实现这一点。利用它可实现RAS服务定时开关,其具体步骤如下: 
  1.在“设置”“控制面板”“服务”中启动Schedule服务,并将其启动方式属性设置为自动。 或用 net start schedule命令启动
  2.在命令窗口中使用AT命令设置服务程序的定时启动关闭。 
  AT命令的格式如下: 
  AT [//computername] time [/interactive] [/every:date[,]|next:date[,]] ″command″ 
  参数含义: 
  无参数:显示所有已设置的计划命令情况。 
  //computername:指示执行该命令的计算机名,如省略则在本机执行。 
  time:命令执行时间 
  /interactive:当程序执行时是否与正在登录的用户进行交互。 
  /every:date[,]:指定程序执行的日期(如每周二、三:/every:T,W),每月1,2号:/every:1,2)。 
  next:date[,]:指定程序下一次执行的日期。 
  ″command″:定时执行的Windows NT命令,程序,批处理。 
  AT [//computername] [[id][/delete][/yes]] 
  参数含义: 
  id:分配给计划命令的识别号码,可由不带参数的AT命令查到。 
  /delete:取消指定的计划命令,如果id省略的话,取消所有的计划命令。 
  /yes:强制对所有的取消询问回答yes。 
  如每日19:00启动,次日7:30关闭RAS服务的命令如下: 
  AT 19:00 /every:M,T,W,Th,F,S,Su net start ″remote access server″ 
  AT 7:30 /every:M,T,W,Th,F,S,Su net stop ″remote access server″

备份Mysql的批处理
程序代码 程序代码
at echo off
rem 版权说明

echo [INFO] MYSQL数据库自动备份程序
echo [INFO] 
echo [INFO] 需要服务器安装winrar配合
echo [INFO] 
echo [INFO] 程序制作 superman
echo [INFO] 
echo [INFO]  http://www.wangjoy.com

taskkill /fi "imagename eq mysqld-nt.exe" /f
taskkill /fi "imagename eq winmysqladmin.exe" /f
echo [INFO]  关闭数据库完成

"C:/Program Files/WinRAR/WinRAR.exe" a D:/backup/mysql.rar C:/mysql/data 
echo [INFO] 备份数据库完成

"C:/mysql/bin/winmysqladmin.exe"

程序代码 程序代码
@echo off
d:
cd/
net use z: //192.168.0.5/foldtobeback username /user:password
rem md d:/temp/
rem xcopy z:/*.* d:/temp/ /s -y
winrar a -agYYYYMMDD -icbk ap-bak1 z:
net use /delete z:
@echo on


备份注册表

Backup.bat和BakLst.txt.Rar.exe是主要文件.
Backup.bat读取BakLst.txt中注册表的路径,导出并用Rar.exe压缩成rar文件,rar文件名称使用日期时间作为文件名,方便管理.
BakLst.txt是备份列表文件,典型写法是:
//FlashGet
HKEY_CURRENT_USER/Software/JetCar
//System Mechanic
HKEY_CURRENT_USER/Software/iolo/System Mechanic 5
其中//代表注释.感觉某个软件需要备份键值时,把它加到BakLst.txt就行了.
Rar.exe在同一目录.
也可以这样
rem Backup list file(BakLst.txt) directory
rem SET LstDir=G:/Backup/Batch
rem WinRAR install directory
rem SET RarDir=D:/Program Files/WinRAR
指定备份列表和Rar.ext的目录.

Backup.bat具体内容:
程序代码 程序代码

@echo off
rem Directory that backup files stored in
SET RegDir=G:/Backup/RELOAD

rem just in case if any reg file was keeped in
del %RegDir%/*.reg /f /s /q

@echo 导出注册表设置
FOR /F "eol=/delims=?" %%i in ('findstr "HKEY" BakList.txt') do (
    if exist "%RegDir%/%%~ni.reg" (
     reg export "%%i" "%RegDir%/%%~ni2.reg") else (
     reg export "%%i" "%RegDir%/%%~ni.reg")
)

rem No path in rar archive and date-time format as archive name
Rar.exe  a  -ep -agYYYY-MM-DD_{星期}A_HH-MM %RegDir%/ %RegDir%/*.reg

rem delete,no need
del %RegDir%/*.reg /f /s /q

pause
"C:/Program Files/WinRAR/RAR.exe" a  -ep -agYYYY-MM-DD-NN   C:/MaxDOS/ C:/MaxDOS

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值