后台运行的FTP

[复制链接]
查看11 | 回复1 | 2005-3-31 01:01:42 | 显示全部楼层 |阅读模式
前面有一位朋友曾经提出关于后台FTP的话题,我就自己所知的提出了一点自己认为切实可行的见解。但是,当我看到下面这篇文章时我对后台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 的 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 自动到此读取Username
与Password,方可顺利login 到Anonymous FTP的主机,如下:
amy[stdnt/u8123456]%cat .netrc
machine ccsun1 login anonymous password guest

帐号
密码
3.最後再执行下面指令即可。
amy[stdnt/u8123456]%nohup ftp ccsun1message &
其中nohup表示即使logout 系统也不会kill这process。而 > message 是将过程中的讯息存到 message 这个档案,以便在其中有错误发生时,我们可以从中得到错误讯息。
不难吧?各位不妨试试,以解除枯坐萤幕前等待FTP 结束的苦状。
…………………………………………………………………………

回复

使用道具 举报

千问 | 2005-3-31 01:01:42 | 显示全部楼层
另外,还可以指定什么时间来执行FTP:
at -f back now+2hour (两个小时後自动执行)
当然, 如果你要现在就执行可以写 at -f back now+1minute(一分钟後执行) ,就这样简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行