Linux LFTP 通过 FTPS 连接和镜像文件夹,无需对 bitbucket 管道进行证书验证

Linux LFTP connecting and mirroring folder over FTPS without certificate verification on bitbucket pipelines

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

但是对于 set 我得到 'lftp: set: Name or service not known' -- 当我删除它到达用户的步骤时我得到 bash: user: command not found 如果我在它前面添加 lftp 我得到lftp: user: Name or service not known

我想我总共尝试了 30 多次,但都没有成功。

我不懂bitbucket,没有完整的解决办法,但是我看清楚了一个错误:

您不能在后续命令调用中更改 lftp 设置。这就是你实际在做的事情:

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

所以请看一下如何使用 bitbucket 将 stdin 发送到程序。 (关于 stdin 的信息:它在下面的教程中被称为 "input",它解释了 shell 是如何工作的:http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#sect_01_03