出 处: rose.dlut.edu.cn
发信人: [email protected] (谁?), 信区: bbs 标 题: FTP 的环境下如何使 get 在背景执行?
********************************************************* 国 立 交 通 大 学 计 算 机 中 心 通 讯 第 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 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 ccsun1 < ftp_command > message &
其中nohup表示即使logout 系统也不会kill这process。 而 > message 是将过程中的讯息存到 message 这个档案, 以便在其中有错误发生时,我们可以从中得到错误讯息。 不难吧?各位不妨试试,以解除枯坐萤幕前等待FTP 结束的 苦状。
-----------------
[ 整理者的话 ]
真的, 上述的技巧是一个十分方便的档案传输方法, 也节省了我们 不少的时间, 免於枯坐等候.
但是, 如果因为它的方便, 每个人都在尖峰时段使用, 心里觉得反 正不须等候而任意使用, 那将只有造成大家的不便, 盖档案传输对线路 造成的负荷不小, 若大量传输或大家都同时使用, 相对的, 所有的传输 都会趋於迟钝, 只会弄巧成拙, 耽搁了自己也延误了别人.
为此, 个人在此呼吁各位使用者, 站在网路礼节与给大家方便的原 则上, 督促自己多加利用离峰时段进行传档工作, 尤其传输速率较低的 线路上的工作, 实不容小视!
发信人: [email protected] (长发哥哥), 信区: Unix 标 题: Re: 如何使FTP的动作在BACKGROUND跑?? 发信站: 成大资讯所_BBS (Fri Jul 7 17:53:05 1995) 转信站: Palmarama!netnews.ntu!news.csie.nctu!bbsroute!vlsi2!bar
==> [email protected] (西子湾夜必眠) 提到: : As title 1. 先在 .netrc 中加入下面这行: machine xxx.xxx.xxx.xxx login xxxxx password xxxxxxx ( ip address & login name & password ) 2. 把 .netrc 改成 600(chmod) 3. 把你连上线後要做的事写成一个档(假设为 action), 如: cd pub cd upload binary get xxx.xxx bye 4. 再写一个档(假设为 back)内容如下: ftp xxx.xxx.xxx.xxx < action 5. 打个指令: at -f back now+6hour (六小时後自动执行)
ok! 当然, 如果你要现在就执行可以写 at -f back now+1minute(一分钟後执行) 就这样. -- ☆ [Origin: ◎椰林风情◎] [From: woju.g1.ntu.edu.tw ] [Login: **] [Post: **]
-- ※ 修改:.albin 于 Dec 4 21:41:57 修改本文.[FROM: 202.118.65.49] ※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.65.49]
|
|