我有一个 Ruby on Rails 3 应用程序,我想通过 SSH 访问控制远程机器。
基本上,我希望 Rails 应用程序能够通过 SSH 在远程计算机上编辑文件、复制文件、移动目录等。
我已经为我想要执行的功能创建了 Capistrano 任务,但我想知道:
- 从 Rails 运行远程 shell 代码的最佳实践是什么
- 如何从 Rails 应用程序调用 Capistrano 任务(基本上可以实现 1)
谢谢!
我有一个 Ruby on Rails 3 应用程序,我想通过 SSH 访问控制远程机器。
基本上,我希望 Rails 应用程序能够通过 SSH 在远程计算机上编辑文件、复制文件、移动目录等。
我已经为我想要执行的功能创建了 Capistrano 任务,但我想知道:
谢谢!
对于#1,ruby 有一个 net-ssh 库——http: //net-ssh.rubyforge.org/——它包含了你想要的功能。
对于#2,这个问题的公认答案包含从 Rails 内部运行 Capistrano 任务的信息——有没有更好的方法从 rake 中运行 Capistrano 任务?
虽然文中说的是 rake,但它也普遍适用于 ruby。但是,应该注意的是,根据您的主机配置方式,您可能会遇到 Capistrano 创建子shell 以执行脚本的方式的问题,因此您可能需要尝试一下或发布后续问题