Windows下自動用ftp從AIX服務器下載指定文件并保持文件名

文件標題很長,容我慢慢道來。
在工作中有這么一個需求:

  1. AIX服務器作為數據庫備份機,/databak/expdp_dest 目錄下有最近一段時間的dmp文件。每個dmp文件使用時間命名,比如:expdp201412212300.dmp expdp201412222300.dmp等。
  2. 需要每天把最新的dmp文件拷貝到一臺PC上,做異地備份或恢復測試。
  3. 如果白天再手動做此事,一來每天做很麻煩,二來影響了服務器的性能。希望能在晚間系統空閑時間自動執行該操作。

如果直接用ftp命令來獲取,存在一定的麻煩:

  1. 無法獲取最新的文件名(通過shell可以獲取到最新的文件名,可是ftp中無法獲取shell變量的值)
  2. 也不能把所有文件都下載,因為數據量太大。
  3. 如果直接將dmp拷貝到某個特定目錄,然后再下載。無疑會占用更多的磁盤空間,同時也增加了操作時間。

通過一些思考和嘗試,實現了如下的操作辦法。較好解決了需求,實現了自動化,而且沒有增加其他的系統消耗。但步驟略微繁瑣,期待以后能找出更好的方法。
步驟:

  1. 在AIX創建link_dmp.sh,文件內容如下:
#!/usr/bin/sh
rm -rf /home/oracle/ftp/*
ln -s -f `ls -lt  /databak/expdp_dest/*.dmp|awk 'NR==1'| awk '{print $9}'` /home/oracle/ftp/`ls -lt  /databak/expdp_dest/*.dmp|awk 'NR==1'| awk '{print $9}'|awk '{spli
t($0,b,"/"); print b[4]}'`

主要是為了創建一個最新dmp的鏈接文件。
這樣,既可以在固定位置直接找到最新的dmp文件,又不會占用更多的磁盤空間。
其中

ls -lt  /databak/expdp_dest/*.dmp|awk 'NR==1'| awk '{print $9}'

是將expdp_dest目錄下的dmp文件安裝日期排序,并通過awk取出最新的一個文件 名。這樣可以保證是最新的dmp文件。得到的結果形如: /databak/expdp_dest/201412232330.dmp
而后面的

ls -lt  /databak/expdp_dest/*.dmp|awk 'NR==1'| awk '{print $9}'|awk '{split($0,b,"/"); print b[4]}'

則更進一步,將之前的/databak/expdp_dest/201412232330.dmp繼續用awk分解,最后只留下201412232330.dmp。
執行這個文件,則在/home/oracle/ftp下創建了一個鏈接文件,查詢結果如下

$ pwd
/home/oracle/ftp
$ ls -l
total 0
lrwxrwxrwx    1 oracle   oinstall         44 Dec 25 14:44 expdp20141224_230000.dmp -> /databak/expdp_dest/expdp20141224_230000.dmp
  1. 在PC端創建autoftp.cfg文件
#192.168.3.10為服務器地址  
#user1 用戶名
#password1  密碼
open 192.168.3.10
user1
password1
cd ftp
lcd G:\dmp_backup 
bin 
mget *.dmp
bye
  1. 在PC端創建autoftp.bat文件
ftp -s:autoftp.cfg
  1. 文件創建完畢。然后我們在AIX服務器上添加一個job,等待數據庫備份文件dmp備份完成后,執行link_dmp.sh。

  2. 在PC端創建job,在合適的時間調用autoftp.bat。

當autoftp.bat被調用,就會自動登錄到192.168.3.10,并將ftp目錄下的所有dmp文件下載到本地的G:\dmp_backup下。(默認autoftp.cfg和autoftp.bat在同一目錄下)。這樣,我們就完成了每次自動下載最新的文件到指定目錄的需求了。

本文的主要思路是創建一個完全同名的link文件,然后再用普通的ftp方法傳輸文件即可。靈活的使用Shell,是本方法的關鍵。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內容

  • 第1章 小試牛刀 $ 是普通用戶,# 表示管理員用戶 root。 shebang:#!。sharp / hash ...
    巴喬書摘閱讀 6,371評論 1 4
  • 轉載 原文的排版和內容都更加友好,并且詳細,我只是在這里貼出了一部分留作自己以后參考和學習,如希望更詳細了解AWK...
    XKirk閱讀 3,246評論 2 25
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,200評論 2 33
  • 這就是女生喜歡成熟的男生的原因
    童可愛閱讀 165評論 0 0
  • 阿母親教學步虛,三元長遣下蓬壺。 云韶韻俗停瑤瑟,鸞鶴飛低拂寶爐。 ——《步虛》【唐】司空圖 父兮生我,母兮鞠我,...
    王歆笙閱讀 1,184評論 0 1