gpt4 book ai didi

nginx - 从 Jenkins 运行时,将通配符与 symlink 命令一起使用会创建错误的链接

转载 作者:行者123 更新时间:2023-12-02 14:19:01 26 4
gpt4 key购买 nike

我无法解决这个问题。我从我的 Jenkins 工作中通过 SSH 运行符号链接(symbolic link)命令。在我的 Jenkins 管道中,我有这两个步骤(除其他外)。

sh "ssh ubuntu@${host} sudo ls -al /etc/nginx/sites-available"
sh "ssh ubuntu@${host} sudo ln -sv /etc/nginx/sites-available/* /etc/nginx/sites-enabled/ -f"

这是日志的相关部分:
[Pipeline] sh
[my_job] Running shell script
+ ssh ubuntu@XX.XX.XX.XX sudo ls -al /etc/nginx/sites-available
total 12
drwxr-xr-x 2 root root 4096 Sep 18 17:27 .
drwxr-xr-x 6 root root 4096 Aug 30 12:27 ..
-rw-r--r-- 1 ubuntu ubuntu 467 Sep 18 17:27 my-nginx-config
[Pipeline] sh
[my_job] Running shell script
+ ssh ubuntu@XX.XX.XX.XX sudo ln -sv /etc/nginx/sites-available/default /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/ -f
'/etc/nginx/sites-enabled/default' -> '/etc/nginx/sites-available/default'
'/etc/nginx/sites-enabled/jenkins' -> '/etc/nginx/sites-available/jenkins'

符号链接(symbolic link)是在我的远程主机上创建的,而不是 my-nginx-config符号链接(symbolic link), defaultjenkins文件(在我的 Jenkins 主机上 /etc/nginx/sites-available )是符号链接(symbolic link)的。

如果我不使用通配符并运行它,它会按预期工作:
sh "ssh ubuntu@${host} sudo ls -al /etc/nginx/sites-available"
sh "ssh ubuntu@${host} sudo ln -sv /etc/nginx/sites-available/my-nginx-conf /etc/nginx/sites-enabled/ -f"

最佳答案

有时远程 ssh 命令(和 scp 的位置)需要额外的转义。我知道您已经引用了您的查询,但您可能需要额外的转义级别(并且因为转义将由您的双引号解释而不是传递给 SSH 命令,所以您需要多一个。

尝试双重转义该通配符:

sh "ssh ubuntu@${host} sudo ls -al /etc/nginx/sites-available"
sh "ssh ubuntu@${host} sudo ln -sv /etc/nginx/sites-available/\\* /etc/nginx/sites-enabled/ -f"

您还可以将它们组合成一个 SSH 调用:
sh "ssh ubuntu@${host} sudo ls -al /etc/nginx/sites-available; sudo ln -sv /etc/nginx/sites-available/\\* /etc/nginx/sites-enabled/ -f"

我不是 Jenkins 专家。如果这不起作用,我会尝试另一对转义,更改您原来的 …/sites-available/*…/sites-available/\\\\*

关于nginx - 从 Jenkins 运行时,将通配符与 symlink 命令一起使用会创建错误的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46285496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com