自动FTP的小脚本

自动FTP的小脚本

作者:xiaophedap.cublog.cn  出处:xiaophedap.cublog.cn  更新时间: 2007年05月12日

使用以下脚本,可以实现自动FTP,将你需要的文件传送到需要的地方,或者将需要的文件从某个地方抓取下来。

cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD)

ftp -n

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

由于是脚本,因此我们要给此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

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了。

那么,这第二种简单的办法如何来判断呢?——我也正在思考中。如果你想到了好的解决办法,请给我来信,我的个人邮箱是:[email protected]

自动FTP的小脚本

作者:xiaophedap.cublog.cn  出处:xiaophedap.cublog.cn  更新时间: 2007年05月12日

使用以下脚本,可以实现自动FTP,将你需要的文件传送到需要的地方,或者将需要的文件从某个地方抓取下来。

cd /PATH_YOU_WANT_TO_UPLOAD(DOWNLOAD)

ftp -n

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

由于是脚本,因此我们要给此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

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了。

那么,这第二种简单的办法如何来判断呢?——我也正在思考中。如果你想到了好的解决办法,请给我来信,我的个人邮箱是:[email protected]


相关文章

  • 新员工测试工作心得
  • 测试(Test )一词最早出于古拉丁字,它有"罐"或"容器"的含义.在工业生产和制造业中测试被当作一个常规的生产活动,它常常和产品的质量检验密切相关,测试的含义似乎是明确的:"以检验产品是否 ...查看


  • 网管系列:如何轻松测试局域网网速
  • 网管系列:如何轻松测试局域网网速 收集者:小路 发布于:www.wzlu.cc 发布时间:2011-3-8 13:33:17 发布人:小路 增大字体 减小字体 在对局域网的速度进行管理中,我们不难发现一些问题.有人反应网速慢,访问外网慢不说 ...查看


  • 电脑英语单词
  • 电脑英语单词 常见硬件篇 CPU :Central Processing Unit,中央处理单元,又叫中央处理器或微处理器,被喻为电脑的心脏. RAM :Random Access Memory,随机存储器,即人们常说的"内存&q ...查看


  • 会计从业资格考试培训系统使用手册
  • 会计从业资格考试培训系统用户手册 安徽省会计从业资格无纸化考试 培训系统 用户手册 南京易考无忧科技有限公司 目 录 第一章 培训系统的环境与安装 ---------------------------------------------- ...查看


  • 高考信息技术网络技术应用选修选择题附答案
  • 网络技术应用选择题 一.网络技术基础 1.计算机网络的功能 1.计算机网络的基本功能是( B ). A.提高计算机运算速度 B.数据传输和资源共享 C.增强计算机的处理能力 D.提供E-mail服务 2.在处理神州号宇宙飞船升空及飞行这一问 ...查看


  • 信息系统应用脆弱性检测研究
  • 信息系统应用脆弱性检测研究1 孙婷婷,孙其博 北京邮电大学计算机科学与技术系,北京(100876) E-mail : 摘 要:本文给出了信息系统脆弱性分类中应用脆弱性检测的一些指导方法,适用于信息系统安全风险评估中的应用脆弱性检测与识别工作 ...查看


  • 网页设计师面试问答
  • 1. 用户自定义的类和ID在定义和使用时有什么区别? [解答] 定义时,类以英文形式的句点"."为起始标志,ID以"#"为起始标志;使用时,类可以在一个页面中被多个不同的元素引用,而ID在一个页面中只 ...查看


  • ros名词中文翻译解释
  • ros 防火墙名词解释 input - 进入路由,并且需要对其处理 forward - 路由转发 output - 经过路由处理,并且从接口出去的包 action : 1 accept: 接受 add-dst-to-address-list ...查看


  • 计算机专业面试题集 linux面试题
  • 计算机专业面试题集 linux 面试题 一.填空题: 1. 在Linux 系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 i 节点 ...查看


热门内容