我尝试通过bitbucket pipelines+lftp部署dist文件夹已经有一段时间了。我已经尝试了各种linux命令的变体,并阅读了几十篇关于这个问题的文章,但是我仍然无法让它工作。
到目前为止,我的管道命令如下所示:

  - apt-get update
  - apt-get install lftp
  - lftp set ssl:verify-certificate no
  - lftp $FTP_HOST
  - user $FTP_USER
  - $FTP_PASSWORD
  - ls
  - quit

但是对于set,我得到了'lftp: set: Name or service not known'--当我删除了它到达用户的步骤,如果我在它前面添加lftp,我得到了bash: user: command not found
我想我已经试了30多次了,都没有成功。

最佳答案

我没有完整的解决方案,因为我不知道bitbucket,但我清楚地看到一个错误:
不能在随后的命令调用中更改lftp设置。你实际上就是这么做的:
使用错误的命令行参数调用lftp
set ssl:verify-certificate no退出,并显示错误消息。即使在步骤1中得到了lftp内的设置,也会因为退出而被清除。
使用(可能)右命令行参数“$FTP_HOST”调用lftp
现在'lftp'退出,可能是因为它在stdin上没有命令。
您的意思是将所有其他命令(user、password、ls、quit)作为stdin转到lftp,但根据日志,它们被视为进一步的shell命令。
所以请看如何将stdin发送到一个带有bitbucket的程序。(有关stdin的信息:在下面解释shell工作原理的教程中,它被称为“input”:http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#sect_01_03

关于linux - Linux LFTP通过FTPS连接和镜像文件夹,无需在位桶管道上进行证书验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51982640/

10-10 05:14