2012-11-23 98 views
0

我想自動執行我的支持工作。我想製作一個腳本,它將連接到服務器並在服務器上執行一些CRUD操作,並再次返回到本地計算機。我不想上傳腳本。現在我已經創建了一個腳本來幫助連接到服務器,但我無法執行任何其他操作。是否可以在遠程服務器上運行本地腳本?如何使用expect和bash腳本在遠程服務器上運行本地腳本

我的腳本:

!/usr/bin/expect 
    set ip neviss 
    set user user 
    set password 1234 
    spawn ssh "$user\@$ip" 
    expect "Password:" 
    send "$password\r"; 
    interact (after this line any command is not getting executed) 
    ls -lrt 

回答

0

您的腳本結構應該是:

通過SSH
  1. 連接。
  2. CRUD操作
  3. 退出SSH。

帶有CRUD操作的腳本必須位於遠程計算機上,因爲您不能運行任何腳本,該腳本不在您要運行它的計算機上。

+0

請明確你想說有兩個不同的事情軟件和腳本什麼都。請注意它們之間的差異。 – santosh

+0

我剛剛編輯了我的答案。 – ilazgo

+0

你的意思是說我無法在遠程服務器上運行本地腳本嗎? – santosh

2

你能做到這樣:

ssh [email protected] "commands of script" 

如果你把腳本到一個文件,你可以這樣做:

ssh [email protected] << End 
paste the script here 
End 

這裏有一些細節。

  1. 登錄與"ssh [email protected]_server ls /"

此命令將登錄,列出根目錄下,並關閉連接。

  1. 第一次通過成功後,嘗試用腳本替換「ls /」。

  2. 第二步成功後,啓動一個ssh代理。

在完成第一步之前,請勿轉到第2步。

使用SSH教程像這樣的 - 這將幫助你

http://support.suso.com/supki/SSH_Tutorial_for_Linux

+0

嗨alinsoar,感謝信息.i有另一個疑問,就像我要執行的命令只有當我通過超級用戶登錄到服務器時纔會執行,這意味着我ssh服務器,然後我以超級用戶身份登錄發射一個查詢「su - user」,然後輸入密碼,然後輸入我想要觸發的命令。 – santosh

+0

可以請幫助像我如何將超級用戶身份驗證添加到腳本中,以便在我運行腳本時像「ssh user @ remote santosh

+0

這將在本地運行時執行腳本一個用戶'用戶',即如果你以根用戶身份登錄,腳本將以root權限運行。 – alinsoar

0
ssh [email protected] bash < /path/to/local/script.sh 
+1

如何在腳本中添加超級用戶身份驗證.i表示我希望在以超級用戶身份登錄服務器後運行腳本。請幫忙 – santosh

相關問題