2011-01-26 23 views
1

我需要建立一個shell腳本來做到這一點:殼牌:獲取數據從遠程主機,EXCUTE其他一些命令

  1. SSH到另一個遠程主機
  2. 使用sqlplus中對主機和閥芯命令得到Oracle數據庫中的數據到一個文件
  3. 傳遞從該主機的文件到我的主機
  4. EXCUTE另一個shell腳本來處理數據文件

我已經完成了第4步的shell腳本。現在我必須一個一個地做這4個步驟。我想創建一個腳本並完成它們。那可能嗎?如何將數據從一臺主機傳輸到主機?

我想也許db文件是沒有必要的。

注意:我必須ssh到另一臺主機才能使用sqlplus。它是唯一一個有權訪問數據庫的主機。

回答

5
# steps 1 and 2 
ssh [email protected]_host 'sqlplus db_user/[email protected] @sql_script_that_spools' 
# step 3 
scp [email protected]_host:/path/to/spool_file local_file 
# step 4 
process local_file 

或者

# steps 1, 2 and 3 
ssh [email protected]_host 'sqlplus db_user/[email protected] @sql_script_no_spool' > local_file 
# step 4 
process local_file 

或者,盡在其中:

ssh [email protected]_host 'sqlplus db_user/[email protected] @sql_script_no_spool' | 
    process_stdin 
0

好格倫幾乎總結這一切。

爲了讓您的生活更輕鬆,您可能還需要考慮設置無密碼的ssh。與此相關的安全風險稍高,但在許多情況下,風險可以忽略不計。

這裏是一個很好的鏈接tutorial。這是一個基於Debian的教程,但所給的命令在大多數主要的Linux發行版上都應該是一樣的。