使用批處理 定時備份資料庫

2021-05-24 01:28:40 字數 4629 閱讀 5590

我做的乙個系統需要定時的備份資料庫資料,用的是批處理實現

需求:每月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資料庫時使用到了批處理檔案進行定時匯出,並儲存為sql指令碼。之所以沒有採用資料庫備份計畫,是因為我要備份資料庫中的指定的兩個表,並且不是整表備份,是根據條件進行篩選後備份。原理是呼叫mysql的mysqldump.exe。此處是在批處理裡面定義函式backup進行備份,這裡...

定時備份資料庫SQL

if exists select from dbo.sysobjects where id object id n dbo sp backupdatabase pmsod and objectproperty id,n isprocedure 1 drop procedure dbo sp back...

每天定時備份資料庫

每天定時備份mysql資料庫任務,刪除指定天數前的資料,保留指定天的資料 需求 1,每天4點備份mysql資料 2,為節省空間,刪除超過3個月的所有備份資料 3,刪除超過7天的備份資料,保留3個月裡的 10號 20號 30號的備份資料 建立shell檔案 vim backup mysql.sh my...