【问题标题】:net-ssh not able to execute commandnet-ssh 无法执行命令
【发布时间】:2014-05-23 10:01:38
【问题描述】:

为什么net-ssh 不能执行useradd 命令?

这是我的 net-ssh 代码:

Net::SSH.start(host, user, forward_agent: true) do |ssh|
  ssh.open_channel do |ch|
    ch.request_pty
    ch.exec "mkdir /tmp/unicorn"
    ch.exec "sudo groupadd unicorn"
    ch.exec "sudo chgrp unicorn /tmp/unicorn"
    ch.exec "sudo useradd application" do |ch, success|
      if success
        puts 'command worked'
      else
        puts 'command failed'
      end
    end
  end
end

useradd 命令外,所有命令均有效。我可以登录并运行useradd 命令并添加一个用户。

谢谢, 埃里克

【问题讨论】:

    标签: ruby ssh net-ssh


    【解决方案1】:

    我会修改你的脚本来添加命令

    puts ch.exec "sudo which useradd"
    

    看看是不是路径问题。

    我还要补充

    ch.exec 'sudo useradd application 1>/tmp/useradd.log 2>&1'
    

    然后查看目标框以查看/tmp/useradd.log 文件中是否记录了任何错误。

    【讨论】: