我制作了此脚本,以使用隐式SSL在远程FTP中下载文件夹:
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
但是当mirror命令尝试执行其操作时,它将得到:
<--- 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;...
无济于事。有小费吗?谢谢!
答案 0 :(得分:1)
您可能必须通过使用“ set ftp:use-tvfs yes”在此处强制使用TVFS。即使服务器忘记宣布对它们的支持,它也可以启用类似Unix的路径。
答案 1 :(得分:0)
由于ftp服务器托管在Windows环境中,因此我不得不使用\代替/来定义路径。