- 论坛徽章:
- 1
|
[b]求助:两solaris之间复制大量数据[/b]
找了一篇自动FTP的文章,他用的也是MGET,应该就是这个方法了吧?
*********************************************************
國 立 交 通 大 學 計 算 機 中 心 通 訊 第 78 期
(中華民國 82 年 5 月) Page 23 - 25
*********************************************************
FTP的一個小技巧 計算機中心 王銘欽
對於網路的愛用者而言,FTP真是一個非常方便的工具,只要幾個
簡單的指令,就可以隨心所欲的讓你將想要的檔案,經由網路從一部主機
,傳到另一部主機上。非但如此,因FTP而產生的一項網路新寵─Anonymous
FTP更是網路愛用者的最愛,無時無刻吸引著成千上萬的使用者。你是被
Anonymous FTP 所深深吸引的使用者之一嗎?這不重要,重要的是,你在
使用FTP 時曾遇到過傳輸的檔案太大,或網路太忙而使你必須枯坐在終端
機前等待的情況嗎?
遇到上面的情況,或許你是在 Console 上多開幾個 Window、或使用
NCSA的時多開幾個Sessions而免去枯坐等待的困擾,但這並非根本的解決
之道,因為你終究還是得坐在Console 或PC前,等待這些FTP 的工作完成
,如何是好呢?
現在提供一個方法,使你的FTP 可以在Background執行。讓你不必為
一個未完成的FTP ,停留在電腦前面。熟悉UNIX的人都知道在指令之後加
一個& ,即表示須在Background執行該指令,但FTP 是一個交談式的工具
,我們必需輸入指令以到達我們所要的目錄,再取回我們想要的檔案,這
些過程似乎無法在Background下動作,這樣如何可以在Background下執行
FTP 呢? 很簡單,如果我們把過程所需的指令事先寫在一個檔案,再讓
ftp 自動去讀取這些指令並執行,就不就可以省去輸入指令並等待的麻煩
,進而可以讓FTP 到background去執行了嗎?接下來,就一步步說明如何
來寫這樣一個檔案,讓FTP乖乖的去Background工作。
舉例來說:我們現在於AMY上,要到 ccsun1 的 Anonymous
FTP server取一些檔案回來,過程如下:
amy[stdnt/u8123456]%ftp ccsun1
Connected to ccsun1.cc.nctu.edu.tw.
220 ccsun1 FTP server (Version 4.162 Tue Nov 1 10:50:37 PST 198 ready
Name (ccsun1:u8123456): anonymous
331 Guest login ok, send ident as password
Local directory now /usr/people/stdnt/u8123456/virus
ftp>; cd virus
250 CWD command successful.
ftp>; prompt ←切掉交談模式
Interactive mode off.
ftp>; binary ←設定二進位傳輸模式
200 Type set to I.
ftp>; mget *.* ←取回所有的檔案
local: readme.1st remote: readme.1st
200 PORT command successful.
...
150 Opening BINARY mode data connection for readme.1st (5012 bytes)
226 Transfer complete.
5012 bytes received in 0.02 seconds (244.24 Kbytes/s)
ftp>; bye ←結束FTP
221 Goodbye.
amy[stdnt/u8123456]%
以上便是利用FTP 傳回檔案的一般過程,順利的話,一下子就可以
結束FTP 檔案傳輸,但如果不順利的話,你可能會開始不耐煩。現在,
我們將上面的過程改以Background來做。
1.首先,將過程所用到的指令依順序放入檔案中,如下:
amy[stdnt/u8123456]%cat ftp_command
!mkdir virus
lcd virus
cd virus
prompt
binary
mget *.*
bye
2.其次,建一個.netrc檔,讓ftp 自動到此讀取Username
與Password,方可順利login 到Anonymous FTP的主機,如下:
amy[stdnt/u8123456]%cat .netrc
machine ccsun1 login anonymous password guest
帳號 密碼
3.最後再執行下面指令即可。
amy[stdnt/u8123456]%nohup ftp ccsun1 < ftp_command >; message &
其中nohup表示即使logout 系統也不會kill這process。
而 >; message 是將過程中的訊息存到 message 這個檔案,
以便在其中有錯誤發生時,我們可以從中得到錯誤訊息。
不難吧?各位不妨試試,以解除枯坐螢幕前等待FTP 結束的
苦狀。
-----------------
[ 整理者的話 ]
真的, 上述的技巧是一個十分方便的檔案傳輸方法, 也節省了我們
不少的時間, 免於枯坐等候.
但是, 如果因為它的方便, 每個人都在尖峰時段使用, 心裡覺得反
正不須等候而任意使用, 那將只有造成大家的不便, 蓋檔案傳輸對線路
造成的負荷不小, 若大量傳輸或大家都同時使用, 相對的, 所有的傳輸
都會趨於遲鈍, 只會弄巧成拙, 耽擱了自己也延誤了別人.
為此, 個人在此呼籲各位使用者, 站在網路禮節與給大家方便的原
則上, 督促自己多加利用離峰時段進行傳檔工作, 尤其傳輸速率較低的
線路上的工作, 實不容小視! |
|