我做了这个脚本,在远程FTP中下载一个文件夹,隐含SSL。
open -d ftps://USER:"PASS"@ftp.xxx.tld:990
mirror --verbose --continue /remote/folder $HOME/destination/folder;
bye
它可以连接,功能是。
<--- 220-Microsoft FTP Service
<--- 220 FTP SOMECOMPANY
---> FEAT
<--- 211-Extended features supported:
<--- LANG EN*
<--- UTF8
<--- AUTH TLS;TLS-C;SSL;TLS-P;
<--- PBSZ
<--- PROT C;P;
<--- CCC
<--- HOST
<--- SIZE
<--- MDTM
<--- REST STREAM
<--- 211 END
但当镜像命令试图做它的事情时,它得到的是:
<--- 257 "/" is current directory.
---> PBSZ 0
---- CWD path to be sent is `/remote/folder'
<--- 200 PBSZ command successful.
---> CWD remote
<--- 550 Access is denied.
mirror: Access failed: 550 Access is denied. (/remote/folder)
---> CWD folder
<--- 550 The system cannot find the file specified.
---> QUIT
当我用手动连接时 lftp
例如,我有ls权限,但不能改变目录,同样的错误,550。
在FileZila上,它可以完美地工作,我确实可以访问该文件夹并下载文件。我在这里感到困惑。已经尝试了一些神秘的东西,比如使用。
lftp -e "set ftp:use-allo false; set ftp:passive-mode true; set ftp:prefer-epsv false;...
没用 有什么提示吗?谢谢!我做了这个脚本来下载一个文件夹。
你可能需要通过 "set ftp:use-tvfs yes "来强制TVFS。它可以让你使用类似Unix的路径,即使服务器忘了宣布他们的支持。
由于ftp服务器是在Windows环境下运行的,我不得不使用\来代替定义路径。