【问题标题】:Unable to run ruby script over ssh into ec2 instance无法通过 ssh 将 ruby​​ 脚本运行到 ec2 实例中
【发布时间】:2014-04-14 05:06:13
【问题描述】:

我正在使用 ec2 实例,并试图在 ssh 到该实例之后在另一个实例上执行 ruby​​ 脚本。 我有一个更新配置文件的 ruby​​ 脚本,所以我需要以超级用户身份运行该脚本。当我在该实例上手动运行脚本时,sudo ruby recreate-532d01c.rb,出现的错误是

sudo: ruby: command not found

运行没有 root 权限的简单脚​​本可以工作,例如ruby file_1.rb

使用 rvmsudo 代替 sudo 会执行带有警告的脚本,

ubuntu@ip-10-0-0-111:~$ rvmsudo ruby recreate-82bb000012.rb 
Warning: can not check `/etc/sudoers` for `secure_path`, falling back to call via `/usr/bin/env`, this breaks rules from `/etc/sudoers`. Run:

    export rvmsudo_secure_path=1

to avoid the warning, put it in shell initialization file to make it persistent.

In case there is no `secure_path` in `/etc/sudoers`. Run:

    export rvmsudo_secure_path=0

to avoid the warning, put it in shell initialization file to make it persistent.

我尝试从要测试的实例之一的 rails 控制台执行以下命令,但它无法将 ruby​​ 识别为命令

1.9.3-p545 :002 > system("ssh -i /home/ubuntu/.ssh/own_key.pem ubuntu@**.***.***.** ruby execute-52d.rb")
bash: ruby: command not found

我通过网络尝试了可能的解决方案,但无法解决问题。我为我的一个旧 aws 帐户运行了相同的配置,这是一个新创建的帐户。不确定这是否会以任何方式出现问题,因为当前 ec2 实例默认属于 vpc 并且在 2013 年 12 月之后有一些更改

【问题讨论】:

    标签: ruby-on-rails ruby ssh amazon-ec2 ubuntu-12.04


    【解决方案1】:

    与您的 VPC 无关。因此,当您使用 sudo 运行您的 ruby​​ 脚本时,您的 user 正在使用的环境不会为 Ruby 设置。

    听起来您可能正在使用 rvm,并且您可能使用“单用户”配置对其进行了设置。

    尝试以 user 身份运行:

    which ruby
    

    并查看您的 ruby​​ 可执行文件所在的位置。这就是您必须确保当您以 sudo 运行脚本时,它在 PATH 中可用。

    在最坏的情况下,您必须使用多用户配置重新安装 rvm,这在您使用 sudo 运行时应该可以工作:

    user$ \curl -sSL https://get.rvm.io | sudo bash -s stable
    

    【讨论】:

    • 当我在 ssh 之后运行脚本时,如何检查 ruby​​ 是否在路径中可用,使用像这个系统这样的命令(“ssh -i /home/ubuntu/.ssh/own_key.pem ubuntu@54 .***.***.** sudo ruby​​ recreate-43dr5f.rb")
    • 我刚刚更新了问题,您可以检查它是否有助于更好地解释我的 qsn
    • ssh 到你的机器 ssh -i /home/ubuntu/.ssh/own_key.pem ubuntu@**.***.***.** 然后一旦你在 ssh 会话中运行 which ruby
    • $which ruby​​ 显示 /home/ubuntu/.rvm/rubies/ruby-1.9.3-p545/bin/ruby
    • 所以你有rvmuser 安装,这就是它不能与sudo 一起运行的原因。 SSH 到机器安装 rvm 并支持多用户:\curl -sSL https://get.rvm.io | sudo bash -s stable
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2011-10-30
    • 2018-01-30
    • 2014-04-06
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多