我尝试通过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/