check ftp success script
最近在做一套同步環境,用的是資料泵,由於資料泵只能在伺服器端實施,所以需要把dmp檔案ftp到相應的impdp的伺服器上,那麼我需要考慮一個問題,impdp的伺服器是定時執行任務的,但是假如這個是expdp的dmp檔案還沒有ftp過來,或者中途斷了,那麼impdp伺服器端就不應該進行同步。所以對ftp之後touch一個checkfile.log,如果判斷可以找到checkfile.log就進行impdp的工作。
寫指令碼時候,寫了2中方案,發現第一個方案有bug,測試工作如下:
1. 方案一(錯誤)
#FTP dmp file
ftp -i -n 172.16.191.130 <
bin
prompt off
cd /sync02
put test.dmp
bye
FTPFILE
# IMP check file
touch /sync01/checkfile.log
ftp -i -n 172.16.191.130 <
bin
prompt off
cd /sync02
put checkfile.log
bye
FTPFILE
定時任務開始後,確認程式存在
ps -ef|grep test.sh
oracle 14549 1864 0 11:54:00 ? 0:00 sh -c /sync01/test.sh
oracle 14555 7641 0 11:54:00 pts/1 0:00 grep test.sh
oracle 14552 14549 3 11:54:00 ? 0:00 /usr/bin/sh /sync01/test.sh
ps -ef|grep ftp
oracle 14553 14552 10 11:54:00 ? 0:00 ftp -i -n 172.16.191.130
oracle 14582 7641 0 11:54:05 pts/1 0:00 grep ftp
此時kill掉ftp 的程式,模擬網路終端
kill -9 14553
ps -ef|grep ftp
oracle 14682 7641 0 11:54:21 pts/1 0:00 grep ftp
ps -ef|grep test.sh
oracle 14694 7641 1 11:54:23 pts/1 0:00 grep test.sh
檢查impdp端是否有checkfile.log檔案
-rw-r--r-- 1 oracle oinstall 656518200 Jul 14 11:54 test.dmp
-rw-r--r-- 1 oracle oinstall 0 Jul 14 11:54 checkfile.log
發現checkfile.log還是被ftp到imdp端了,說明上面的方案不可行,kill只是中斷了第一個ftp的任務,crontab會進入第二個ftp的任務繼續執行,所以更改指令碼,把2個檔案放入同一個ftp的包中,這樣的話要麼一起終端,要麼一起傳輸。
正確方案:
touch /sync01/checkfile.log
#FTP dmp file
ftp -i -n 172.16.191.130 <
bin
prompt off
cd /sync02
mput test.dmp checkfile.log
bye
FTPFILE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-668008/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Oracle Script] check userOracle
- [Oracle Script] check latchOracle
- [Oracle Script] check active sessionOracleSession
- [Oracle Script] check lock infoOracle
- [Oracle Script] check Literal SQLOracleSQL
- script of check repair ASM DISKGROUPAIASM
- [Oracle Script] check tablespace usage infoOracle
- [Oracle Script] check temp tablespace usageOracle
- [Oracle Script] check object count by userOracleObject
- [Oracle Script] check File I/OOracle
- Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERRORAIDNNError
- Script to Check for Foreign Key Locking Issues [ID 1019527.6]
- IDBRequest success 事件事件
- jQuery Validate success()jQuery
- A Map to Success: Functors in JavascriptJavaScript
- Ext success failure 呼叫AI
- Script
- 請說說`<script>`、`<script async>`和`<script defer>`的區別
- jQuery ajax中success和complete區別jQuery
- onclick="return check()" 和 onclick="check()" 區別
- Script Browser & Script Analyzer 1.3更新發布
- Opportunity的chance of success的賦值邏輯Unity賦值
- 10. Does luck have anything to do with success?
- $.ajax的beforeSend,success, complete,error例子Error
- Shell Script
- shell script
- oracle scriptOracle
- script win
- bat scriptBAT
- 北大FTP,除了北大FTP其他好用的FTP軟體FTP
- script標籤
- [Oracle Script] LockOracle
- Tablespace Space Script
- Cold backup script
- Oracle Database ScriptOracleDatabase
- tom's script
- Shell Script(轉)
- FTPFTP