Linux LFTP通过FTPS连接和镜像文件夹,无需在位桶管道上进行证书验证

时间:2018-08-23 09:35:27

标签: linux ftp bitbucket bitbucket-pipelines lftp

我一直在尝试通过bitbucket管道+ 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

但是对于设置来说,我得到'lftp: set: Name or service not known'-当我删除该步骤到达用户的步骤时,我得到bash: user: command not found,如果我在其前面添加lftp我得到{{ 1}}

我认为我一共尝试了30多次,以使这些设置正确无误。

1 个答案:

答案 0 :(得分:1)

由于我不了解bitbucket,所以我没有完整的解决方案,但是我清楚地看到了一个错误:

您不能在后续命令调用中更改lftp设置。那就是你实际上在做什么:

  1. 您使用错误的命令行参数lftp调用set ssl:verify-certificate no
  2. lftp退出并显示错误消息set: Name or service not known。即使您在步骤1中获得了lftp内的设置,由于退出也将立即清除。
  3. 您(可能)使用正确的命令行参数'$ FTP_HOST'调用lftp
  4. 现在'lftp'退出了,可能是因为它在stdin上没有任何命令。
  5. 您的意思是将所有其他命令(用户,密码,ls,退出)以stdin的身份转到lftp,但根据日志,它们将被视为进一步的shell命令。

因此,请查看如何使用bitbucket将stdin发送到程序。 (有关stdin的信息:在以下教程中它称为“输入”,其中解释了shell的工作方式:http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#sect_01_03