我正在尝试确定某些 FTP 服务器要求脚本中有一个空行的原因,如下所示:
open server.com
username
ftp_commands
bye
请参阅用户名凭证后所需的空白行。
示例来自:通过批处理文件进行 FTP
另一个参考文献: http://newsgroups.derkeiler.com/Archive/Comp/comp.sys.ibm.as400.misc/2008-05/msg00227.html
也在这里讨论:
archive.midrange.com/midrange-l/200601/msg00048.html “我观察到的行为与我没有指定登录密码的行为相同。”答案参考了我们的相同修复...archive.midrange.com/midrange-l/200601/msg00053.html 和 archive.midrange.com/midrange-l/200601/msg00065.html
注意:根据我的经验,FTP 问题会得到粗鲁的回答。诚然,FTP 已经过时了,但许多客户仍然拥有无法升级或替换的旧系统。这里不应讨论其原因。这个问题的目的是寻求积极的回应。如果您不同意上述观点,请不要回复。如果您从未遇到过同样的问题,请不要回复。
我怀疑这可能仅限于从 Windows 机器执行的 FTP 脚本,但据说这种情况经常发生,并且发生在许多不同的服务器上。
我特别想了解是什么原因导致的,因为我有一个真实的例子,一个生产系统在运行多年没有问题之后突然需要这个作为解决方法。该服务器属于第三方,他们声称没有改变。服务器详细信息未知,无法确定。
任何遇到过同样情况的人提供的帮助或鼓励都将不胜感激。
附言:抱歉,我写了很多字,也提到了很多令人难受的回答,但我在 serverfault 和其他地方问过类似的问题,不幸的是,我得到的回复都是 FTP 的下意识反应,回答者们也在争论这个问题的有效性。如果我对这个问题有更好的理解,我真的不会问这个问题,也不会在网上重新发布这个问题。我知道有人见过这个问题,但不知道是什么原因造成的。
我担心这个问题会再次变成另一个无关紧要的讨论。我非常礼貌地请求:如果您没有遇到过类似的问题,请不要回复。
进一步编辑:请不要建议更改产品。问题不在于空白行要求。我们知道这可以解决问题。问题是无法首先解释空白行的原因。略有不同,但对于回答这个问题来说,这是一个需要注意的关键点。
答案1
你的脚本使用什么行尾?尝试使用替代形式(如果是 Windows,则使用 Unix,如果是 Windows,则使用 Unix)。
您使用的是哪个 FTP 客户端?请考虑使用 NCFTP:http://www.ncftp.com/ncftp/. 它比大多数操作系统内置的客户端有更好的脚本支持。
答案2
我也遇到过类似的问题。我感觉 FTP 脚本中的一些 ftp 命令被跳过了。但过了一段时间,我发现我的脚本运行时“交互模式”处于“开启”状态。连接到 FTP 服务器后,我在脚本中将其关闭,似乎起了神奇的作用……如果您仍然遇到此问题,请尝试一下。
PS:通过关闭交互模式,我也不需要提供空行
答案3
在脚本中添加一个空白行似乎是解决 FTP 脚本跳行问题的可接受方法。不幸的是,论坛等网站上没有太多关于如何解决此问题的参考资料。如果没有能够主动调试有问题的会话的 FTP 协议专家的帮助,也不可能找出原因。我本来希望这个问题可以通过现实世界中类似事件的参考资料和原因识别来回答,但不得不承认这很可能不会发生。此外,考虑到在公开论坛上提出此类问题的典型回应,我甚至可以说,如果没有大量的商业努力,就不会有人致力于寻找此问题的答案。
因此,这个问题的答案如下:无法确定 FTP 脚本跳行的原因,但是可以通过在发现跳行的脚本中添加空行来轻松解决问题。
答案4
您是否必须使用现成的操作系统 ftp 客户端?
如果没有,您可能需要查看 NcFTP 客户端产品。我最近刚刚自动化了一个 ftp 下载过程,想到必须自动化通用 ftp 客户端,我感到很不愉快。
NcFTP 客户端有一个名为 ncftpbatch 的工具,可以实现 ftp 过程的自动化,而无需执行通用 ftp 自动化所需的所有手动工作。
http://www.ncftp.com/ncftp/doc/ncftpbatch.html
编辑:错过了建议使用其他产品的部分。别介意我的帖子。