原始作者:不详/提供者:河南电信

对於网路的爱用者而言,FTP真是一个非常方便的工具,只要几个简单的指令,就可以随心所欲的让你将想要的档案,经由网路从一部主机,传到另一部主机上。非但如此,FTP而产生的一项网路新宠—AnonymousFTP更是网路爱用者的最爱,无时无刻吸引著成千上万的使用者。你是被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 AnonymousFTP 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 1988) 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 自动到此读取UsernamePassword,方可顺利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 系统也不会killprocess。而 > message 是将过程中的讯息存到 message 这个档案,以便在其中有错误发生时,我们可以从中得到错误讯息。不难吧?各位不妨试试,以解除枯坐萤幕前等待FTP 结束的苦状。

Next-->page>>回上一页,看更多资料