我们有一个旧系统,它使用内置的 Windows 命令行 ftp 客户端将文件上传到 ftp 服务器。它使用 -s 开关执行此操作,ftp 文件如下所示:
debug
open myftpsite.com 21
<username>
<password>
cd remote_folder
ascii
lcd "c:\myfolder"
prompt
put export.txt export.tx
rename export.tx export.txt
quit
99% 的时间里,这种方法都有效,但另外 1% 的时间里,这种方法却行不通。成功运行时,生成的日志文件包含来自服务器的响应消息,例如上述每个命令之后的“250 OK”。问题是,有时似乎无法连接,然后我们在日志文件中根本看不到任何消息(无论是来自服务器还是 ftp 客户端)。ftp 客户端似乎仍返回进程退出代码 0。
有人对此有什么建议吗:
从内置 Windows 命令行 ftp 客户端获得更好的日志记录?AND\OR 强制其返回除 0 之外的进程退出代码以指示出现问题?
答案1
最好的办法是,在使用 FTP 时,在客户端或服务器上运行 Wireshark 或 tcpdump,以尝试发现到底出了什么问题。下面的示例应该就足够了。
tcpdump -vv -w ftp_capture.log port ftp
尝试使用主动或被动模式,看看它是否防火墙问题。尝试使用更好的 FTP 客户端,例如 WinSCP 或 Filezilla。最后,检查您是否需要使用 FTP。有更好、更安全的选项,例如 SCP/SFTP。