出  处: 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]
  | 
 
 
 |