2017-02-23 73 views
0

我想部署网站到Azure应用服务从高山Linux框使用lftp。用户名始终为usr\$usr。无论出于何种原因,lftp(版本4.7.6-r0)仅使用usr\部分。我正在使用的命令是使用变量。

lftp -c "set ssl:verify-certificate on && set ftp:ssl-force on && open -u $FTP_USER,$FTP_PASSWORD $FTP_SERVER && mirror -vvv -R -e --scan-all-first --transfer-all --overwrite --parallel=24 ./wwwroot $FTP_LOCATION" 

所以在用户名的$实际上不是命令的一部分,但内部变量,因而$usr不被视为变量。

看起来像它的\$,不知怎的,混淆的lftp组合。任何想法如何传递凭据不同?或逃脱它。

我也试过ftp://$FTP_USER:[email protected]$FTP_SERVER,但没有帮助。与usr\\$usrusr\\\$usr相同。

+0

只是好奇 - 你*有*使用FTP进行部署?还有很多其他的选择...... –

+0

嗯,有一个_webdeploy_就是这样。我不会说这么多。 –

+0

现在*我很困惑:我们正在谈论Web Apps,我们不是?除了ftp,Web Apps与VSTS/git/github/onedrive/dropbox/bitbucket集成。我会叫*很多。* –

回答

2

问题不是lftp,而是GitLab CI。 美元符号需要在那里引用另一个$。我描述了它here

0

Lftp本身并不扩展shell变量,因此很可能在您分配给FTP_USER变量时发生替换。

+0

你是对的。我专注于'lftp',但问题在于GitLab CI。 '$'需要引用。我在这里写了整个故事:https://blog.cincura.net/233595-handling-a-dollar-sign-in-a-username-for-deploying-azure-web-app-via-ftp-on-gitlab -ci /。 –