精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● UNIX>>◆网络应用◆>>[转载]后台执行FTP

主题:[转载]后台执行FTP
发信人: [email protected]()
整理人: wwwyyyxxx(1999-08-23 22:18:19), 站内信件
出  处: 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]

[关闭][返回]