发信人: sungang(笨刚) 
整理人: zhcharles(2002-01-30 16:02:34), 站内信件
 | 
 
 
1) 
 
 在$HOME目录创建文件.netrc,并将其读写权限改为模式“600”。该文件的内容为:  
 
 machine www.testhost.com login abc password abc123 
 macdef init 
 binary 
 bell 
 hash 
 prompt 
 !clear 
 mget * 
 !clear 
 bye 
 
 ---- 该文件的作用是为FTP自动注册www.testhost.com服务器定义相应的账号与口令,并定义一个宏init。 
 init宏的工作过程是:将文件传输格式类型设为二进制(binary);在每个文件传输结束后响铃以提醒用户(bell);在文件传输过程中显示传输进度(hash);关闭交互提示开关(prompt),以便后继的“mget *” 操作(获取远方服务器当前工作目录下的所有文件)能自动进行;在“mget *”操作的前后,执行“!clear”清屏;最后执行“bye”退出FTP。注意,上述.netrc文件应以空行结束,因为文件中定义了一个宏,而宏的定义必须以空行结束。  
 
 执行时,运行  
 ftp www.testhost.com
 即可。 
 
 2)  
 如果在NT/2000环境。 
 想实现非交互方式传输文件,可以使用文本编辑软件编辑一文本文件FTP.TXT,其内容首先是远程主机的用户名,接着是用户的口令,再就是一些FTP命令,注意所有的FTP命令均为小写,否则FTP认为是无效的命令,例如: 
   weekend(远程主机的用户名) 
   mypassword(远程主机用户的口令) 
   binary(以二制方式,可以照原样传输来自其它系统的字符) 
   hash(每当传输了512字节的数据时打印出一个“#”字符。在传输大型文件或有一个较慢的连接时这个命令很有用,它可以使用户了解事情的进展情况) 
   get .profile AAAA(取文件.profile,并且改名为AAAA) 
   bell(响铃) 
   close(断开连接) 
   bye(退出FTP命令) 
 
   在命令提示符下运行
             FTP -s:FTP.TXT MYSERVER
 命令即可自动实现文件传输,其中FTP.TXT文件必须在当前目录下或为此文件加上全路径名,DZSERVER为远程主机的主机名,当然也可以将MYSERVER写为IP地址的方式,例如
             FTP -s:FTP.TXT 192.168.0.1
 
 3) 
 还有一种方式。 
 假设我们从本地机器上向机器名为HOSTNAME的远程机器传送文件filename.ext,A01.ext的源路径为/usr/data/mydirect,目标路径为/usr/data/anywhere,利用HOST2上的一个用户DGMAIN进行登录,用户weekend的口令为mypassword,建立的SHELL文件myftp.sh如下:  
 
 cd /usr/data/mydirect 
 ftp -n  HOSTNAME  
 user  weekend  mypassword 
 bin 
 cd /usr/data/anywhere 
 put filename.ext 
 close 
 quit  
 
 当本地机器与远程机器HOSTNAME的通讯线路连通后,执行put.sh,即可自动非交互的实现从本地机器向远程机器发送文件filename.ext。  
 
 
 4) 
 借助expect软件。在FreeBSD下,装了ports的话, 
 cd /usr/ports/lang/expect 
 make install 
 make distclean 
 在Linux下这个软件系统已经自带了。 
 编一个下面的脚本aaa.txt。 
 下面这个脚本从一个主机上使用匿名ftp取下一个文件来。其中,主机名是第一个参数。文件名是第二个参数。 
         spawn    ftp    [index $argv 1] 
         expect "*Name*" 
         send     "anonymous " 
         expect "*Password:*" 
         send [exec whoami] 
         expect "*ok*ftp>*" 
         send "get [index $argv 2] " 
         expect "*ftp>*" 
                 send "bye" 
 执行expect aaa.txt 
 
 5)用重定向方式
 #!/bin/sh 
 ftp -in <<END 
 o HOST 
 us USERNAME PASSWORD 
 OPERATIONS 
 bye 
 END 
 
 
  ---- Best Regards,
 Sun Gang
             [email protected]
             icq: 2499593
             Don't Click me!        | 
 
 
 |