分類:
@echo off
rem 關閉螢幕回顯
if not exist d:\dmpftp.log echo DMPFTP LOG FILE>d:\dmpftp.log
rem 如果是首次運行程式,建立log檔案d:\dmpftp.log
echo -----%date%-----%time%----->>d:\dmpftp.log
rem 在log檔案中記錄程式運行時的日期和時間
if exist d:\*.dmp ren d:\*.dmp *.old
rem 將以前的備份檔案改名為old(以後若ftp成功則刪除,若ftp失敗就保留)
echo open 193.152.5.129>d:\dmpftp.txt
rem 建立ftp命令檔案d:\dmpftp.txt,其中第一條命令就是串連omcr伺服器,ip需根據現場情況設定
echo user xyz xyz>>d:\dmpftp.txt
rem 在命令檔案d:\dmpftp中加入第二條命令,設定ftp時所需使用者名稱和口令,根據情況設定
echo prompt>>d:\dmpftp.txt
rem 在命令檔案d:\dmpftp中加入第三條命令,關閉ftp回顯
echo cd /export/home/bak/db/backup>>d:\dmpftp.txt
rem 在命令檔案d:\dmpftp中加入第四條命令,切換遠程目錄,根據情況設定
echo lcd d:/>>d:\dmpftp.txt
rem 在命令檔案d:\dmpftp中加入第五條命令,切換本地目錄
for /F "tokens=2-4 delims=/ " %%i in ("%date%") do echo get _%%k%%i%%j.dmp>>d:\dmpftp.txt
rem 從windows變數%date%中提取當天所要get的dmp備份檔案名
rem 如果dos視窗下運行echo %date%,回顯的是英文格式日期Fri 08/18/2006,就用上述命令產生第六條ftp命令
rem 如果%date%是中文格式2006-08-18 星期五,需改為
rem for /F "tokens=1-3 delims=- " %%i in ("%date%") do echo get _%%i%%j%%k.dmp>>d:\dmpftp.txt
rem 如是是oracle資料庫用dmp,如果是db2資料庫要將dmp改為tar
echo bye>>dmpftp.txt
rem 在命令檔案d:\dmpftp中加入第七條命令,結束ftp
type d:\dmpftp.txt | ftp -n>>d:\dmpftp.log
rem 以dmpftp.txt檔案內容做為ftp命令的輸入,ftp執行的回顯記錄到log檔案中
del d:\dmpftp.txt
rem 刪除ftp命令檔案,因為下次ftp時的dmp檔案名稱有變化,需重建ftp命令檔案
if exist d:\*.dmp del d:\*.old
rem 如果ftp成功,刪除前一天的dmp檔案
if not exist d:\*.dmp echo Ftp remote host FAIL, Save old file...>>d:\dmpftp.log
rem 如果因伺服器或區域網路原因ftp失敗,記錄到log檔案中
dir d:\*.dmp d:\*.old>>d:\dmpftp.log
rem 列出當時用戶端下的dump檔案名稱,如果當天ftp成功則是當天的dmp檔案,如果當天ftp失敗,則是前一天的old檔案,改副檔名後一樣
exit
http://blog.chinaunix.net/uid-20139906-id-1733807.html