2012-08-10 26 views
2

是否有用於實現遠程命令行界面的現有庫?使用Ruby/Python實現遠程命令行界面

例如

考慮的gitolite的情況下,當你做一個git push origin,將ssh到遠程服務器,並執行一些代碼(即hooks,需要整個交易沒有服務器。

我要存檔是什麼類似的東西,如

./remote get_up_time 

它將調用SSH到遠程計算機,但執行該腳本get_up_time已經部署

+0

你想要一個完整的遠程命令行還是隻需要能夠遠程執行一個命令? – tMC 2012-08-11 03:39:32

回答

0

假設ssh安裝和公鑰是在遠程服務器上(因此,你不需要提供密碼),這將是一個粗糙的實現:

#!/usr/bin/env ruby 

host = ARGV.shift 
command = ARGV.join(' ') 
IO.popen("ssh #{host} \"#{command}\"") do |io| 
    io.sync = true 
    io.readlines.each { |line| puts line } 
end 

可用,如:

$ ./remote.rb www.example.com ls -l 

您可以根據需要擴展此功能以提供額外的功能,例如從標準輸入讀取密碼或提供ssh

雖然看起來有「無服務器」,但遠程系統上肯定有一個sshd(遠程服務器)運行,可以使其工作。

如果您不想使用ssh,則需要使用遠程計算機上運行的其他服務器或自行編寫。

1

實現自己的腳本是很容易做到。

#!/bin/bash 

ssh [email protected] "$1" 

然後你可以只調用諸如:

./remote.sh get_up_time