日期:2014-05-16  浏览次数:20718 次

【转载】UNIX 系统下FTP的使用

UNIX 系统下FTP的使用【转载】 http://wuweihai1106-126-com.iteye.com/blog/991457

一、FTP基本用法

  FTP是File Transfer Protocal的缩写,意为文件传输协议,它可以将远程系统上的一个或多个文件拷贝到本地计算机,也可以将本地计算机上的一个或多个文件拷贝到远程系统 上。FTP是TCP/IP协议族中的应用层协议,它的工作方式采用客户机/服务器方式。

  FTP传输文件时,支持不同的传输模式,有ascii和binary模式。在传输可执行文件和数据文件时最好使用binary模式。

  使用FTP的时候,必须拥有远端计算机的帐号和密码,才可进行文件传输。
  要与远端工作站 host1 ,进行文件传输

  ftp host1
  Name (host1:user-name) : 输入帐号
  Password (host1:user-name): 输入密码

?

二、使用FTP自动传输文件


  编辑一个文本文件,假设文件名为myftp,文件内容为:

  open 远程计算机IP 地址或计算机名称 (如 open 128.2.9.100)

  user hostname password (如 user test pass)

  binary (设置为二进制传输)

  get file1 (取file1文件)

  put file2 (送出file2文件)

  bye (退出)

  然后使用命令 cat myftp | ftp –n即可以实现FTP的自动完成。

或者这样编辑:
  echo “


  open 远程计算机IP 地址或计算机名称 (如 open 128.2.9.100)


  user hostname password (如 user test pass)

  binary (设置为二进制传输)

  get file1 (取file1文件)

  put file2 (送出file2文件)

  bye (退出)

  “ | ftp –n

  然后使用chmod +x myftp 给文件增加执行权限,直接输入myftp就可以完成数据自动传输了。

三、利用.netrc文件自动传输文件

  编辑一个命名为.netrc的文件,存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其它用户进行读访问(即执行chmod 660 .netrc)。文件内容如下:
  default login 远程计算机用户 password 远程计算机用户密码

  macdef init

  binary

  runique

  hash on

  prompt off

  put 文件名

  get 文件名

  bye


  然后执行ftp –i 远程计算机地址或名称,就可以自动实现FTP传输了。这种情况主要用于自动定时传输。

四、常用的ftp批量上传下载的shell脚本

?

? FTP批量 上传 ,ftput.sh:

  01 #!/bin/bash

  02 for filename in $@

  03 do

  04 ftp -nv 192.168.130.2 <<!

  05 user username password

  06 prompt off

  07 bin

  08 mput $filename

  09 close

  10 !

  11 done

  FTP批量 下载 ,ftpget.sh

  01 #!/bin/bash

  02 for filename in $@

  03 do

  04 ftp -nv 192.168.130.2 <<!