2011-11-16 79 views
1

在Rails Web應用程序中,我需要在Rails環境中運行bash腳本(在Linux操作系統上),但我不知道如何將腳本連接到Rails以便Rails讀取&運行我的腳本然後將腳本的輸出發送到Rails,以便滿足我的需求。如何通過Rails3運行Bash腳本?

例如,我有一個服務器IP地址:1.1.1.1,和路徑寫劇本:/usr/local/scripts/hello.sh,但每當我在此服務器上運行hello.sh腳本,它在輸出打印" hello world",但我的Rails的一個應用是運行在與ip:1.1.1.2的服務器。現在,我需要通過服務器1.1.1.2上的Rails Web應用程序運行hello.sh,以在網頁上向我發送輸出:"hello world"。 這是一個簡單的例子來說明我需要什麼。

的MyScript:例如

#!/bin/bash 
echo "hello world" 

OS = LINUX

EDIT

描述它的簡單的方法:

  • 我服務器A的2個服務器IP :1.1.1.1服務器B的ip:1.1.1.2
  • 我在(服務器A)中有一個腳本。腳本路徑:/usr/local/script/hello.sh
  • 上hello.sh內容是:#!/bin/bash echo "hello world"

我會打電話給hello.sh使用Rails3中的應用程序(位於服務器A)(運行在服務器B上)。爲了在服務器B的網頁上顯示hello.sh(hello world)的結果。

+0

只是爲了澄清'hello.sh'存儲在服務器A必須在內部服務器B右Rails應用程序來執行? – Bohdan

回答

2

system command?

E.g:

system('sh http://1.1.1.1/yourscript.sh')

得到的輸出這裏看看:Getting output of system() calls in Ruby

+0

非常感謝您的回覆, 我真的需要, 但是哪些部分的rails必須寫這個命令?什麼文件夾或路徑? –

+0

如何將hello.sh的結果發送到運行rails的服務器以便在網頁中顯示「hello world」 –

+0

在需要時在控制器中調用它 –