我在 ubuntu 上运行的 circleci 上使用 ci/cd 环境。我试图将一个文件夹(最终删除旧文件)发送到 FTP 地址。我试过了,ftp
但lftp
我认为他们使用提示符连接到 FTP。我想避免使用 bash 脚本,因为从那里访问 cicleci 环境变量很复杂(我猜)。所以你知道任何命令行看起来有点像这样吗
upload-to-ftp $COMPLETE_URL_WITH_USER_AND_PASSWORD -i $FOLDER_PATH -o $REMOTE_FOLDER_PATH
但如果我决定使用 bash 脚本,我希望能够输入并且暂时不退出程序,这是我的 bash 脚本和 ci 管道
- run:
name: Deploy on FTP
command: |
chmod 755 ./.circleci/deploy-to-ftp.sh
./.circleci/deploy-to-ftp.sh "$FTP_HOST"
重击:
ftp_host=${FTP_HOST}
lftp
echo $FTP_HOST
echo $(mirror -R /www/ /dist/my-app/browser/)
exit 1
一种可能的方法是使用(文件位于您的主目录中):
.netrc
在其中输入结构:然后你可以执行命令:
请注意,如果您的目录中有子目录,
<LOCAL DIR>
则不会上传它们,只会上传文件。EOF
标识符必须是唯一的,并且最后一行的标识符前不应该有空格、制表符等!如果你想使用
lftp
如下命令:使用的 Bash 脚本
ftp
可以看到类似这样的内容:您将
.netrc
记录将要使用的每个主机/用户/密码。您应该以这种方式启动脚本:
其中变量
$FTP_HOST
应该只是主机的主机名或 IP,并且应该存在于.netrc
文件中!