欢迎 seiya700 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心

加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 网站留言 论坛 站内搜索 卓越资源 源代码

域名查询 网站空间 域名主机 数据库空间

 
今天是:2012年02月05日 星期日  您现在位于: 首页 → 技术文章 → 自动FTP的小脚本
   自动FTP的小脚本
作者:xiaophedap.cublog.cn  出处:xiaophedap.cublog.cn  更新时间: 2007年05月12日 
  
    使用以下脚本,可以实现自动FTP,将你需要的文件传送到需要的地方,或者将需要的文件从某个地方抓取下来。
cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD)

ftp -n <<- EOF

open IP_ADDRESS

user USERNAME PASSWORD

ascii(or bin)

put *(or get)

bye

EOF
 

 
    下面详细讲解以下这段代码:
    1. cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD)
        首先将进入你要上传得文件所存在的目录,或者是想将某个FTP上的文件下载到的目录。这样就免去了在真正进入FTP站点以后,还需要修改本地路径的麻烦。
    2. ftp -n <<- EOF
        由于是脚本,因此我们要给此FTP脚本定义一个结束的符号,在这里,定义的结束符是“EOF”。你也可以自己来定义其他的。不过建议用“EOF”,这在绝大多数编程语言中,都表示结束:End Of File。
    3. open IP_ADDRESS
        表示连接FTP站点,这里的IP_ADDRESS就是FTP站点的IP地址。
    4. user USERNAME PASSWORD
        这是你进入该FTP站点的用户名和密码。以上两个结合起来,就相当于我们通过浏览器进入FTP站点时候,经常使用的ftp://username:password@ip_address的办法。
    5. ascii(or bin)
        我们都知道FTP传送有两种方式:ascii和binary。这里就是指定你要传送的方式。这很重要,因为这将决定你传送或者获取的文件是否正常可用。
    6. put *(or get)
        put *表示将第一条cd进入的路径下所有的文件都传送到刚刚连接进入的FTP站点。当然,你也可以指定某一个或者几个文件,而不一定是所有的。而get则表明是将刚刚进入的FTP站点那个FTP跟目录下的文件获取到本地——第一条cd命令进入的那个路径下。当然,如果你所需要的文件不在FTP的根目录下,在使用这个命令之前,你还要使用cd命令来修改一下FTP站点的当前路径。
    7. bye
        完成应该完成的工作以后,当然就是断开和FTP站点的连接了。
    8. EOF
        这个符号之前已经讲过。当脚本遇到这个符号的时候,它就知道应该结束了。
 
    有个偷懒的办法是,可以将以上的脚本写成一个函数,然后再需要的时候调用这个函数即可。
autoftp()

{

cd

ftp -n <<- EOF

open IP_ADDRESS

user USERNAME PASSWORD

ascii (or bin:binary)

put (or get)

bye

EOF

}
 

 
    另外,还有一个需要注意的地方,就是在该段程序的后面,你需要去判断自动FTP是否成功了——就是你传送或者获取是否成功了。这里的判断也有两个思路:
    1. 如果是获取,则在本地判断是否已经成功获取。如果是传送,则需要再次调用自动FTP脚本,在FTP服务器正确的目录去判断是否传送成功。不过这样的办法显然是“笨重”的;
    2. 通过shell常用的方式:$?来判断是否成功,如果返回值是0则表示成功,而返回值非0则表示没有成功——但是,我所说的需要注意的地方,正是这里需要注意的。其实以上代码,不管是否自动FTP是否成功,返回值其实都是0。这会让很多人困扰,为什么呢?不要忘记了,其实你最后的代码脚本是EOF,所以,不管你前面自动FTP传送还是获取都是失败的,其实这个正常结束的符号让这个脚本“正常结束”了,因此,$?的返回值就是0了。
    那么,这第二种简单的办法如何来判断呢?——我也正在思考中。如果你想到了好的解决办法,请给我来信,我的个人邮箱是:crystal.chen.cc@gmail.com
 (本文已被浏览 9574 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:获得N天前的日期(0<=N<=28)
下篇文章:用C写的一个读取BIOS时间的程序
 相关文章:
OpenSuSE 11.1新手安装教程(贴图版) 自动ftp实例测试
SUSE Linux中Ftp/xinetd服务的开启方法 Linux下安装支持SSL连接的Mysql
Slackware安装OpenOffice2.0简体中文版 OpenSUSE 远程打印教程
openSUSE 10.2 特性 修改OpenSuse 10.2 grub背景图
openSUSE Linux 10.2 多语言版 Debian+vsftpd+MySQL实现虚拟用户
用OpenOffice玩StarWars游戏 OpenOffice.org 2.1安装手记
让OpenOffice.org Writer 竖排文字 ubuntu7.04上配置proftpd手记
在 RedHat 9.0 上安装配置openssh-4.6p1 SCO6链接SCO5的动态链接库注意事项
FreeBSD下vsftpd简单安装与配置 OpenSSL命令行在Linux下的运用
Linux系统上架设VSFTP服务器实例解析 mget命令下载FTP 服务器上的多个文件

相关搜索
查看百度中关于自动FTP的小脚本的更多内容
查看google中关于自动FTP的小脚本的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    Copyright (c) 2001-2011 Unix-cd.com. All Rights Reserved.