2009-08-28 153 views
0

有沒有一種工具可以讓我在沒有SSH的情況下通過網絡發佈命令?通過網絡發送shell命令到Linux服務器

例如,我想創建一個配備DVD刻錄機的新Linux機箱,並通過網絡發送此命令「growisofs -dvd-compat -Z/dev/dvd -dvd-video dvd」要刻錄的文件。該系統將自動化,因此我需要一些能夠輕鬆高效地完成此項任務的系統。

+4

爲什麼使用ssh時遇到問題?它可以很容易地用來發出命令,再加上sftp/ftp來複制你想要刻錄的文件。 – Cascabel 2009-08-28 23:28:00

+1

試圖阻止您的回覆:我想知道是否可能是您要避免的SSH密碼提示?您不必使用密碼登錄 - 您可以使用公鑰/私鑰對。請參閱man手冊中的ssh-keygen和ssh-copy-id。 – Cascabel 2009-08-28 23:34:33

+0

@Jefromi:也許他不知道ssh可以用於單個命令,並且可以配置爲在不提示輸入密碼的情況下安全地運行。 – 2009-08-28 23:37:53

回答

1

這裏是我所闡明的答案形式的評論。

在本地主機上,運行ssh-keygen,很可能將密鑰保存在默認位置並且不使用密碼短語。接下來,使用ssh copy-id <[email protected]>將公鑰複製到遠程主機。

您的腳本,做這樣的事情:

scp "$FILE_TO_BURN" [email protected]$REMOTE_HOST:"$BURN_DROP_DIR" 
ssh [email protected]$REMOTE_HOST $BURN_COMMAND 
ssh [email protected]$REMOTE_HOST rm "$BURN_DROP_DIR/$(basename $FILE_TO_BURN)" 

隨時通過捕獲SSH命令的退出狀態/輸出錯誤檢測割肉出來。您可能還想考慮這樣做,而不使用sshfs(由大多數發行版打包)之類的文件首先複製整個文件,以裝載包含要在網絡上刻錄的文件的目錄。

+0

其實我應該說我的問題是如何使程序網絡可訪問。我希望人們能夠執行我的PHP腳本並讓我的PHP腳本動態執行刻錄程序。所以是有PHP執行 「SCP 」$ FILE_TO_BURN「 $ REMOTE_USER @ $ REMOTE_HOST:」 $ BURN_DROP_DIR」 SSH $ REMOTE_USER @ $ REMOTE_HOST $ BURN_COMMAND SSH $ REMOTE_USER @ $ REMOTE_HOST RM 「$ BURN_DROP_DIR/$(基名$ FILE_TO_BURN)」 真做到這一點的最佳方式? – Chris 2009-08-29 00:24:29

0

您可以使用netcat和shell綁定。如果網絡公開曝光,這當然是相當危險的。

Google search

+0

是的,我認爲這是更多我正在尋找。謝謝。 – Chris 2009-08-29 00:56:36