Linux 须藤,[ Ant :sshexec] Remote command failed with exit status 127

标签 linux ssh redhat sudo gradle

一点背景: 我有一个 gradle 脚本,用于在许多不同的机器上安装和设置多个软件 - 我在本地运行它以加速部署过程。 gradle 脚本获取图层和服务器名称作为参数,并将通过执行远程 ssh linux 命令 (rhel 6) 安装软件。

C:\work\source\tools\environment-tools>gradle -Player=service -Pserver=demo1 installSamba
Using libraries from: C:\work\source/lib
:installSamba
Trying to override old definition of datatype scp
Trying to override old definition of datatype sshexec
 --- Executing: yes | yum install samba
 --- failOnError = false, using sudo
 >>>>>
Command: echo 'sudo_pass' | sudo -Ss 'yes | yum install samba'
[sudo] password for root:
/bin/bash: yes | yum install samba: command not found

[ant:sshexec] Remote command failed with exit status 127

我正在尝试执行的命令:简单地使用 yum 安装 samba,但也会触发 yes 以自动执行默认的 samba 安装。

问题: 当我执行脚本时,会远程执行以下命令来安装 samba: 回声 'sudo_pass' | sudo -Ss '是的 | yum 安装 samba'

为什么当下面的代码完美执行时会失败(但需要人工交互,即按 y 然后返回): 回声 'sudo_pass' | sudo -Ss yum 安装 samba

我想我需要正确设置以下小型 gradle 安装脚本:知道我做错了什么吗?

task installSamba << {
  forAllServers { props ->
    ssh('yes | yum install samba', props)
  }
}

最佳答案

我后来发现,为了执行像上面那样的 gradle 脚本,必须在远程机器上降级 sudo。我所做的降级是从版本:1.7.4p5 到 sudo 版本 1.7.2p2。 这是一个可行的替代方案,但不是最佳解决方案。我宁愿在主机上运行最新的 sudo 更新。那么真正的问题是:如何着手修复上面的简单脚本以使其执行

关于Linux 须藤,[ Ant :sshexec] Remote command failed with exit status 127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483334/

相关文章:

php - Cron 不在 12.0.4 上运行,但在 12.0.5 上运行

ssh - Tmux窗口大小已锁定

linux - Linux 上的 R 包管理

linux - 更改用户的主目录后 bash 损坏

linux - 增加ssh超时

linux - 如何在 RedHat linux 上设置 Selenium 服务器?

linux - 在没有临时(中间)文件的情况下处理同一文件

php cli守护进程无法获取日志

linux - 如果每个结果使用多个命令,则无法获得 bash

azure - ssh:连接到端口 22 上的主机:连接被拒绝