Bash 我如何确保在Ubuntu SSH路径上正确找到应用程序 上下文
我有一个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 主目录的内容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
.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