设为首页 收藏本站
查看: 1478|回复: 0

[经验分享] unix下ftp使用

[复制链接]

尚未签到

发表于 2016-6-8 06:53:33 | 显示全部楼层 |阅读模式
  UNIX 系统下FTP的使用

一、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> binary 设定以二进制方式传送文件
  
  ftp> ascii设定以ASCII方式传送文件(缺省值)

  ftp> help 列出 ftp 文件传输,可使用之任何命令

  ftp> !ls 列出本地工作站,目前目录下之所有文件名

  ftp> !pwd 列出本地工作站,目前所在之工作目录位置

  ftp> ls 列出远端工作站目前目录下之所有文件名

  ftp> dir 列出远端工作站目前目录下之所有文件名(略同于 UNIX 的 ls -l 指令)

  ftp> dir . |more 同上,但每页会暂停(可能不适用 Unix 以外的 ftp)

  ftp> pwd 列出远端工作站目前所在之目录位置

  ftp> cd dir1 更改远端工作站之工作目录位置至 dir1 之下

  ftp> get file1 将远端工作站之文件 file1 ,拷贝到本地工作站中

  ftp> put file2 将本地工作站之文件 file2 ,拷贝到远端工作站中

  ftp> mget *.c 将远端工作站中,扩展名为 c 之所有文件,拷贝到本地工作站中

  ftp> mput *.txt 将本地工作站中,扩展名为 txt 之所有文件,拷贝到远端工作站中

  ftp> prompt 切换交互式指令(使用 mput/mget 时不用每个文件皆询问yes/no)

  ftp> status 显示当前FTP状态

  ftp> close关闭远程连接

  ftp> quit 结束 ftp 工作

  ftp> bye 结束 ftp 工作

  UNIX系统中FTP的命令很丰富,以上介绍的仅仅是比较常用的几种,具体可以在系统上输入help查看。

  

  
  二、使用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 <<!
  05 user username password
  06 prompt off
  07 bin
  08 mget $filename
  09 close
  10 !
  11 done
  适用方法:将代码修改下(FTP地址和用户名密码修改一下)保存成ftput.sh,把要上传的文件作为脚本参数执行之即可。如
  1 sh ./ftput.sh *.jpg 123.txt config.xml
  就是把所有jpg文件和23.txt config.xml两个文件上传到ftp。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-227542-1-1.html 上篇帖子: ftp方式上传、下载文件 下篇帖子: ftp实现附件上传
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表