Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 我如何确保在Ubuntu SSH路径上正确找到应用程序 上下文_Bash_Ssh_.profile - Fatal编程技术网

Bash 我如何确保在Ubuntu SSH路径上正确找到应用程序 上下文

Bash 我如何确保在Ubuntu SSH路径上正确找到应用程序 上下文,bash,ssh,.profile,Bash,Ssh,.profile,我有一个shell脚本,它是从Jenkins通过SSH远程调用的。如果我手动SSH到用户帐户,然后运行脚本,它就会工作。但是,当Jenkins执行此操作时(相同的用户帐户,但执行命令作为SSH命令的参数),它无法在路径上找到应用程序 环境 lsb_发布-a 没有可用的LSB模块。 分发服务器ID:Ubuntu 说明:Ubuntu 16.04.5 LTS 发行日期:16.04 代号:xenial uname-a Linux 4.4.0-1066-aws#76 Ubuntu SMP周四8月16日16

我有一个shell脚本,它是从Jenkins通过SSH远程调用的。如果我手动SSH到用户帐户,然后运行脚本,它就会工作。但是,当Jenkins执行此操作时(相同的用户帐户,但执行命令作为SSH命令的参数),它无法在路径上找到应用程序

环境 lsb_发布-a 没有可用的LSB模块。 分发服务器ID:Ubuntu 说明:Ubuntu 16.04.5 LTS 发行日期:16.04 代号:xenial

uname-a Linux 4.4.0-1066-aws#76 Ubuntu SMP周四8月16日16:21:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

主目录的内容
.profile的内容

cat .profile 
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
失败脚本的内容 脚本的运行方式 在Jenkins文件中,我们有以下内容:

sshagent(credentials: ['server-ssh']) {
                        sh "ssh -o StrictHostKeyChecking=no -p 22 -l app ${ENVIRONMENT_HOST_NAME} './run-apps.sh'"
}
运行脚本的观察结果 ./run-apps.sh:第12行:未找到aws:命令

其他资料 如果我使用Jenkins使用的同一用户SSH到服务器,我可以运行AWS CLI:

whoami
app

最后:

aws --version
aws-cli/1.15.83 Python/2.7.12 Linux/4.4.0-1066-aws botocore/1.10.82

这可能与eval的使用和未传播的环境有关,或者其他原因有关,例如,
.profile
未运行,因此应用程序不在路径上。

/run apps.sh
替换为
bash-l./run apps.sh
?我可以尝试一下,但你能详细说明一下为什么这会/应该起作用吗?
whoami
app
which aws
/home/app/.local/bin/aws
aws --version
aws-cli/1.15.83 Python/2.7.12 Linux/4.4.0-1066-aws botocore/1.10.82