ftp脚本更新
① 多主机头的多个WEB站点如何实现一一对应的ftp更新功能
Windows 2000 Server安装成功后,一般会启动一个默认的Web站点,为整个网络提供Internet服务。在中小型局域网中,服务器往往只有一台,但是一个Web站点显然又无法满足工作需要。那么,能否在一台服务器上设置多个Web站点(以下我们简称为“一机多站”)呢?答案是肯定的,并有多种途径可以达到这一目的。我们知道,网络上的每一个Web站点都有一个惟一的身份标识,从而使客户机能够准确地访问。这一搜裤标识由三部分组成,即TCP端口号、IP地址和主机头名,要实现“一机多站”就需要在这三个方面下工夫。
现在我们有一台Windows 2000 Server服务器,在这台服务器上要建立默认站点“教师之家”和新增站点“学世弊简生天地”(建立更多网站原理相同),下面我们分别探讨三种不同的实现途径。
途径一 TCP端口法
我们知道Web站点的默认端口一般为80,如果改变这一端口,就能实现在同一服务器上新增站点的目的。
假设服务器名为Master,安装有一块网卡,IP地址为192.168.0.1,那么安装IIS后会自动生成一个默认Web站点,我们就将其作为“教师之家”网站。点击“开始”→“程序”→“管理工具”→“Internet服务管理器”,出现“Internet信息服务”窗口(请见附图)。右键单击“默认Web站点”,选择“属性”进行设置。在“Web站点标识”中,将说明改为“教师之家”,IP地址选择192.168.0.1,TCP端口保持默认的80不变。将制作好的网站文件拷贝到默认目录中,“教师之家”的设置就算完成了。下面我们来增加“学生天地”站点。在“Internet信息服务”窗口中单击选定主机名Master,然后选择“操作”→“新建”→“Web站点”,出现“Web站点创建向导”窗口,依次点击[下一步],将站点说卜棚明定为“学生天地”,IP地址选择192.168.0.1,在TCP端口栏一定要将默认的80修改为其他值,如1050,选定主目录,设置好访问权限,“学生天地”站点的设置也完成了。
测试一下效果,在浏览器地址栏中输入http://192.168.0.1(默认的端口号80可以省略),回车,我们将访问到“教师之家”站点。输入http://192.168.0.1:1050(注意IP地址后的端口号一定不能少),则会出现“学生天地”站点。遗憾的是,采用这种方式设置的多站点无法与DNS结合使用。
途径二 IP地址法
一般情况下,一块网卡只设置了一个IP地址。如果我们为这块网卡绑定多个IP地址,每个IP地址对应一个Web站点,那么同样可以实现“一机多站”的目的。
点击“开始”→“设置”→“控制面板”,双击“网络和拨号连接”,右键单击“本地连接”,选择“属性”调出“本地连接属性”面板,选择“Internet协议(TCP/IP)”,点击“属性”调出“Internet协议(TCP/IP)属性”面板,点击下方的“高级”调出“高级TCP/IP设置”面板。在IP地址栏下面列出了网卡已设定的IP地址和子网掩码,点击[添加]按钮,在弹出的对话框中填上新的IP地址(如192.168.0.2,注意不能与其他机器的IP地址重复),子网掩码与原有的相同(如255.255.255.0)。然后依次[确定],就完成了多个IP地址的绑定。
按照上例中的做法设置默认站点“教师之家”,然后我们来增加“学生天地”站点。在“Internet信息服务”窗口中单击选定主机名Master,选择“操作→“新建”→“Web站点”,出现“Web站点创建向导”窗口,依次点击[下一步],将站点说明定为“学生天地”,IP地址选择192.168.0.2(注意不能与默认站点的IP地址相同),TCP端口保持默认的80不变,选定主目录,设置好访问权限,“学生天地”站点的设置完成。
分别在浏览器地址栏中输入http://192.168.0.1和http://192.168.0.2,测试一下效果。如果您嫌通过输入IP地址访问站点不够方便的话,完全可以通过设置DNS,用http://www.teacher.com代替http://192.168.0.1来访问“教师之家”,用http://www.student.com代替http://192.168.0.2来访问“学生天地”。
途径三 主机头法
在不更改TCP端口和IP地址的情况下,同样可以实现“一机多站”,这里我们需要使用“主机头名”来区分不同的站点。
所谓“主机头名”,实际上就是指www.student.com之类的友好网址,因此要使用“主机头法”实现“一机多站”,就必须先进行DNS设置。在DNS中设置http://www.teacher.com和http://www.student.com两个网址,将它们都指向惟一的IP地址192.168.0.1。
按照以上两例中的做法首先设置默认站点“教师之家”,由于是默认站点,因此基本无需进行特别设置。然后参考以上两例进行添加“学生天地”站点的操作,IP地址选择192.168.0.1,TCP端口保持默认的80不变,“此站点的主机头”一项一定要填上www.student.com,然后选定主目录,设置好访问权限,“学生天地”站点的设置完成。
分别在浏览器地址栏中输入http://www.teacher.com和http://www.student.com两个网址,测试效果。与上两例不同的是,用“主机头法”实现的“一机多站”必须使用友好网址才能访问。以上三种方式,您可以根据具体情况选择使用。如果服务器安装有两块以上的网卡,同样可以采用“IP地址法”为每块网卡指定不同的IP地址,从而实现“一机多站”。
② FTP自动备份脚本
换空间,数据的备份与恢复具体步骤操作!
一 备份数据
1,利用PW后台的数据备份功能进行备份.注意的是在备份数据的时候,为了数据的完整性,建议最好先关闭论坛,后台更新所有缓存和索引.
2,利用phpmyadmin,进行备份,具体如何备份,这里就不介绍.不清楚的可以查阅相关文档,很简单的.这里备份的文件是一个独立sql文件.
以上方法一般适用与中小型论坛的备份,数据量比较小的时候还是很实用的,一般多为虚拟主机用户使用.大型论坛的备份一般是 3,4两种操作..主要是比较简单操作,一些我个人认为比较复杂且不是很实用的方法就不介绍了不如通过Mysqlhot,使用binlog机制,增加mysql的事物日志记录等,这里就不介绍了.以下下操作一般有服务器权限的朋友才可以的.
3,直接复制或者打包数据库文件,复制文件夹,大家应该都明白,我们来讲打包,linux下用tar命令实现简单有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暂停mysql服务.
4,Mysqlmp,是mysql自带的脚本,假如数据库名为abc,用户名为:abcuser,密码为123,,那应该使用
命令:
mysqlmp -uabcuser -p123 adc pwabc_bak.sql
,pwabc_bak.sql 你可以任意的命名.
二 数据还原
1,针对第一种备份方法,也是最普遍使用的.在恢复论坛数据的时候,要关闭php.ini文件中的safe mode,恢复完数据后,再打开SAFE MODE就可以了。(自己服务器得才需要此设置,普通虚拟空间用户不用此设置)
用FTP软件下载老论坛所有文件
将所有文件上传至新空间
打开网页 你的论坛地址/admin.php 用你的论坛创始人帐号登陆
数据恢复(随便点一个文件,程序会自动将剩余文件导入的)
以上方法可保留所有数据及插件和模板。
对于不需要模板的或者不需要原来的插件的
老论坛备份数据,用FTP拉到本地。(具体在data目录下)
上传程序包里的文件到新空间,全新安装
用FTP软件将备份的数据上传到新空间的data目录下
用论坛创始人帐号进入后台,数据恢复
如果后台数据库忘记了,可以直接修改sql_config.php里的数据库帐号和创始人帐号密码!这里输入的创始人密码不能直接是明文.需要是MD5加密过后的.
这里就给大家一个简单的 MD5密文 [] 明文 [123456]之后就可以通过/admin.php 刚才修改的帐户密码登陆论坛了..
2,对于phpmysql备份的数据,在2M以下可以直接导入数据库中(至于怎么导,看相关文档,很简单.)数据量很大的情况只能到服务器上,服务器上 mysql 命令导入(具体导入将在"4"中介绍)虚拟主机用户,那么就得联系你的空间商,让他们协助完成数据的恢复.
3,对于打包数据库文件的,可以直接解压 把数据库文件 放到你数据库名的目录下. 在linux下注意数据库文件的权限.一般都是mysql:mysql. Win 下关系不是很大,除非你做了特殊的权限设置.
4,对于mysqlmp 导出数据, 按照备份数据中的举例用户来演示,
则命令为:
mysql -uabcuser -p123 abc abc_bak.sql
注意:
无任何错误一般来说就是正常完成。通常在使用 phpmyadmin 导入的sql脚本中有create database语句,会导致导入数据出错,因为database 已经存在,把这段语句删除之,再次检查客户的建表语句前是否有drop表的语句,如果没有,而原数据库存在同名表格,也会出错,这时需要清空原数据库.
③ ftp脚本出错怎么跳出
跳出方法是
1、清除一下IE浏览器的缓存,点IE上的工具——然后再选择最下面的Internet选项,再点Internet删除文件(记得勾上删除所闷指梁有脱机内容),确定后再重新打开IE浏览器试试,同时请确认您使用的是IE6.0及以上版本。
2、您的网页上清缓存,在网页上选择工具->Interner选项->删除Cookies和删除文件,然后再确定。
3、请您点击IE浏览器中的“工具”,选择“internet选项”,进入“安全”页面,点击“自定义级别”,将您的安全设置设为“低”。
4、清空一下IE浏览器的cookies文蚂运件,在IE浏览器中设置“禁止自动脚逗铅本更新”,并不要选择“禁止运行ActiveX控件”,然后再尝试操作。
④ 检测到ftp服务器上有更新,但是点击更新提示FTP连接失败,要怎么弄啊!
1、网络不通导致FTP连接服务器失败
有时可能是由服务器或者电脑本地网络有问题,导致FTP连接服务器失败。可以通过浏览器查看网页测试是否是网络问题。
2、服务器出现宕机、死机、重启等情况
我们在租用服务器时,都会对服务器的访问速度及稳定性进行考察。服务器出现右机、死机、重启等情况不仅会导致FIP连接服务器失败,也直接导致网站无法正常运营,从而影响网站优化排名及用户体验。如果出现此情况,尽快联系服务器提供商进行解决。
3、防火墙设置出现问题导致服务器连接失败查看我们的防火墙设置是否勾选了“PASV模式”,如果勾选,那么将取消,然后尝试重新连接。
4、FTP软件出现问题导致连接服务器失败有时我们会忘记对软件的及时更新,所以导致使用的FTP软件版本过低或者被停用,再或者该软件出现了问题。此时我们可以先删除现有软件,然后重新安装。
5、短时间内连接服务器次数过多
可能由于FTP连接服务器的速度稍微有些慢,我们等待的比较着急,就不停地点击连接按钮,导致短时间内容连接次数过于频繁而连接失败。
6、服务器被ISP屏蔽导致FTP连接服务器失败判断服务器是否被ISP屏蔽,可以通过使用代理服务器进行连接测试。
7、租用的服务器后台被关闭
如果以上几种情况都被排除,那么很有可能是我们所租用的服务器后台被关闭了,此时需要连接服务器提供商进行核查与修改。
FTP连接服务器失败的原因有很多,基本比较常见的情况就是以上几种。为保障网站的正常运营,当出现FTP服务器失败的情况,应及时检查其原因并解决。
⑤ 关于在ftp上下载最新更新文件的问题
Serv-U FTP Server V6.4.0.4 汉化版,傻瓜式的操作。给你个天空的下载地址。http://www.skycn.com/soft/5704.html
软件介绍:
Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9x/ME/NT/2K 等全Windows系列。它设置简单,功能强大,性能稳定。FTP 服务器用户通过它用 FTP协议能在 internet上共享文件。它并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护。例如:您可以为您的FTP 设置密码、设置各种用户级的访问许可等等。Serv-U不仅100%遵从通用FTP标准,也包括众多的独特功能可为每个用户提供文件共享完美解决方案。它可以设定多个FTP 服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。
汉化说明:
1、请先安装原英文软件。
2、退出 FTP Serv-U 应用程序!包括系统栏图标!
3、解压缩后运行汉化包,填入你的安装目录进行汉化。
4、有些原英文版用户汉化后可能会导致设置丢失,这可能是由于汉化的资源与英文版不同所致,只能请大家重新设置一下了。以前即用汉化版则无此问题。
⑥ shell脚本怎样用ftp抓取新增文件。文件不定时更新,先增量判断,再抓取
可以使用inotifywait。可以网络一下安装方法
记得之前用过类似:inotifywait -me close_write aaa/ > bbb.txt(大致是这样)
通过监控aaa目录下文件关闭动作来判断FTP传送写入文件结束,并将其文件名写入bbb.txt
⑦ 求助:易语言如何通过ftp自动更新客户端的可执行文件和文本文件,最好不用模块
写配置项 加入版本
然后枯培启动窗口创建完毕 连接FTP服务器 取FTP文件目录 然闷败裂后下载文件 最蚂闭后打开文件进行比对
就这样OK了
⑧ 如何设置FTP远程文件同步的更新
用软件实现比较容易吧?
我用的是Bestsync2011,就是觉得操作简单,容易上手,速度又快,稳定,不占用太多系统内存,又能不登陆作为windows服务同步,我用了很久了,还不错了。
比如:
1. 你本地装上软件以后,在主菜单里面 编辑-->追加任务
文件夹1选择 驱动盘中要备份的文件夹位置
文件夹2选择 选择FTP(填写FTP地址等相关参数)
同步方向为 文件夹2 --》文件夹1
在 FTP设定 下面填写服务器地址,账户名,密码等信息)
然后选择 完成 按钮
2. 在主界面下,双击你刚建立的任务,会弹出属性对话框
3. 选择“日程”属性页,勾选最后一个复选框“按指定日程启动任务”,然后在下面选择你想同步的具体时间点就Ok了~~嘿嘿
⑨ FTP服务器与客户端资料 数据定期更新脚本怎样写
客户端:
1 *.ftp 2 *.bat 3 WINDOWS计划任务
第一步: 脚本语言写在tongbu.ftp 中
open 192.168.0.99
administrator
d:
Cd jieshouwenjian
Bin
Prompt
Mget *.*
Bye
****** Mget 是下载 Mput 是上传 ******
第二步:写批处理文件 来执行你的脚本 tongbu.bat
ftp -s:d:\tongbu.ftp
第三步:打开WINDOWS计划任务 设定定时执行
控制面板——计划任务
服务器端:
建立好 用户名:administrator 密码:无 的用户
⑩ Bat脚本处理ftp超强案例分析
前言 公司有几百台windows服务器 每次程序更新 如果是一台台拷数据 只怕安排十个人 一天都不一定做得完 所以就必须研究个全自动更新方案来 于是就想到了FTP 做个主FTP站 在几百台客户机上启动BAT脚本 每 秒检测一次 如果主站有更新程序 就自动下载更新 几分钟内 上 台windows服务器 都可以全自动更新程序完毕 相当实用 现把当初研究BAT的脚本思路贴出来 希望对大批量运维人员一个方向 当然 批量更新服务器 每个公司有它自己的解决办法 这个BAT的方式不是最优的 可以用shell 可以用perl 也可以用python等脚本解决 一 FTP命令说明 在windows系统中因为FTP是一个程序 如果在bat脚本中直接调用FTP的命令 在执行时总会弹出命令行窗口 循环在>FTP光标这 所以要换种方式 利用 S:filename 更多的命令请输入 h查看 FTP登录成功后 需要下载远程单个文件时 使用get命令 如果下载多个文件时 用mget 它支持通配符 在使用mget时 需要对每一个文件都进行选择Y/N 如果想不交互的下载全部的文件 可以输入一次prompt命令关闭交互方式 Mput和mget命令要注意两个问题 Ⅰ 不能对目标文件指定命字 在命令行上所有的文件都视做源文件 Ⅱ mput mget两个命令不能对目录进行上传与下载 只能对文件 Ⅲ Prompt 每次执行一个这个命令 就在on off之间循环 ftp脚本开始时 prompt默认为on 所以一般在上传 下载文件时 执行一次prompt 把交互式的on关掉 变为off 文件的传输方式 Binary 二进制传输 Ascii ascII传输 在FTP文件传输过程中 ASCII传输HTML和文本编写的文件 而二进制码传输可以传送文本和非文本(执行文件 压缩文件 图片等) 具有通用性 二进制码传输速度比ASCII传输要快 所以在建立bat脚本时 一般输入bin命令 启用二进制传输 如果用ASCII模式传输非文本文件 可能会显示一堆乱码 如果是上传一些CGI脚本 有可能将无法运行这类脚本 而在浏览器上看到server error的错误 Ascii和binary模式的区别是回车换行的处理 binary模式不对数据进行任何处理 asci模式将回车换行转换为本机的回车字符 比如Unix下是 Windows下是 Mac下是 unix系统下行结束符是一个字节 即十六进制的 A 而ms的系统是两个字节 即十六进制的 D A 所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件 redhat的 vsftp默认是binary ascii默认关闭) 每检测到一个字节是 A 就会自动插入一个 D 所以如果你的文件是二进制文件比如可执行文件 压缩包什么的 就肯定不能用了 如果你的文件就是unix下的文本文件 你用 ascii模式是正确的 要是误用了binary模式 你在windows上看这个文件是没有换行的 里面是一个个的黑方块 在用FTP客户端传输文件时 因为这些软件都做得比较智能化 它可以根据后缀 自动启用传输模式 所以不用担心出问题 二 实例求证 环境说明 上有一FTP服务器端(windows版) FTP用户名为lgh 密码为 该用户的根目录为D lgh 里面文件见下图 sql rar是sql bat的压缩文件 大家注意看图 我等下会在后面的实例中引用这个文件 把mget get prompt bin ascii等ftp命令诠释得一清二白实例一 直接BAT调用FTP命令 ftpbat bat内容 (***大家建立bat文件不要命名为ftp bat 执行时会有问题***)
复制代码 代码如下:
ftp open lgh get sql rar bye
从图上的结果看 bat脚本直接调用xp的FTP命令是不行的 执行时H:>ftp会一直死循环 我这里的XP系统是SP 的 其它版本的 我没有作测试 如果有不同 欢迎大家留言告之 实例二 用put get上传 下载单个文件 把XP机器上H:js目录下文件flower zip上传到FTP服务器 把FTP服务器中的sql rar文件下载到XP机器上的H:JS目录 ftp get put bat内容如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get sql rar >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
我们来看看结果 见下面两张图 从XP系统上看 H盘的JS目录 多了个sql rar FTP服务器上的根目录多了个flower zip 这说明 刚才的脚本完成正常的执行了 达到了预期的目的
实例三 用put get上传 下载多个文件 在XP机器上把flower zip复制一次 改名为flower zip 在XP机器上把把第二次实例下载的sql rar文件删除 以免影响到本次操作 在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作 把XP机器上H:js目录下文件flower zip 和flower zip上传到FTP服务器 ftp get put many bat内容如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
到FTP服务器上查看根目录 看flower zip与flower zip是否已成功上传 从图上看 只成功上传了flower zip文件
刚那个ftp get put many bat脚本里echo put flower zip flower zip>> %ftpfilename% flower zip是传输的最后一个文件 是不是用put时 意味着bat在处理上传时 只认最后一个文件呢 我们再多加个文件flower zip 来验证
在XP机器上把flower zip复制一次 改名为flower zip在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作
ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
结果 还是只成功上传了flower zip 因bat双击时 执行过程会一闪而过 我们看不到执行过程 到命令行去执行下 看到底出了什么问题
命令行 执行ftp get put many bat脚本 从执行情况看 flower zip三个文件都是put的 但在传输时 却只传了flower zip 真不解 有知道的朋友吗?给点方向
再换个方式 用通配符* 试试 ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
在FTP服务器上把上传的flower文件全部删除 以免影响到本次操作执行ftp get put many bat 结果只有flower zip文件上传成功了 呵 flower zip文件 怎么都不能上传 ???
其实用put传输多个文件 完全可用重复的方式取代 比如 ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
实例四 用mput mget上传 下载多个文件 在FTP服务器上删除有关flower的文件ftp mget mput many bat内容如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
双击ftp mget mput many bat后 发现系统弹出一窗口后 就卡住了 停止不前
原因是用了mput命令 但没有用Prompt关闭交互
ftp mget mput many bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
再次执行ftp mget mput many bat 结果见下图
用通配符*试试在FTP服务器上删除有关flower的文件ftp mget mput many bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
照样成功上传有关flower* zip文件 因为结果与上一步是一样的 所以就不抓图了 实例五 用ascii在windows系统间传输非文本文件 把XP电脑上的rmb jpg通过ascii传到FTP服务器的根目录
ftp get ascii bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
执行ftp get ascii bat后 发现rmb jpg可以正常上传 并且可以正常打开 那 这个现象与前面所以的ascii不能传输非文本东西有出入 这是怎么回会事呢 这是因为 FTP服务器是WINDOWS系统 XP电脑上的bat脚本也是在windows系统上运行的 所以bat在windows系统里用FTP传输文件 不管是用ascii 还是用binary 都是可以的 接下来我们再做一个实验 FTP服务器选centos 再测下ascii传输非文本文件问题 实例六 用ascii在windows系统与linux系统间传输非文本文件 在RHEL 位系统上建立一vsftpd服务器 上面说过redhat默认启用二进制传输 关闭了ascii码传输 所以我们还要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允许客户端进行ascii传输 并重启vsftpd
把rmb jpg放到FTP服务器 大家注意下H:js目录下只有ftp getascii bat文件
ftp getascii bat文件内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
执行ftp getascii bat 看结果 rmb jpg文件有下载到XP电脑里 双击这个文件 发现图像乱码 文件被破坏了 都是ascii码传输惹的祸换bin传输 测试一下在XP电脑上删除rmb jpg文件 再双击ftp getascii bat文件 去从LINUX的FTP服务器下载一个rmb jpg文件
修改ftp getascii bat 把ascii改给二进制传输
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
结果 文件正常下载 图像也显示正常 lishixin/Article/program/qrs/201401/30223