2012-06-28 112 views
1

使用Net :: OpenSSH模塊時,如何連接到主機,然後將命令的輸出捕獲/寫入已創建的文件?將SSH命令的輸出寫入文件

這是我的命令:

ps -ef | grep jboss | grep java 

我到目前爲止以下perl腳本..

open PATH,">","./report/archive/rpet-$now/path.txt" or die "Unable to create file: $!"; 
    my $ssh = Net::OpenSSH->new(
       $host, 
       user=>$username 
       passwd=>$password 
    ); 
    print PATH "SSH Output Would Go Here"; 
close PATH; 

那麼什麼是運行命令和打印輸出的最佳方式?提前致謝!

回答

3

你看過文檔(https://metacpan.org/module/Net::OpenSSH)嗎?這是在簡介。

print PATH $ssh->capture('command'); 

雖然這也會打印任何錯誤條件。捕獲在標量和列表上下文中都有效。

+0

我已經試過這個,但它似乎永遠不會寫任何文件。要麼,或者它給了我一個「ssh_exchange_identification:由遠程主機關閉的連接」錯誤。任何想法爲什麼? – MrTunaDeluxe

+0

@MrTunaDeluxe:檢查錯誤:'print $ ssh-> error;' – salva

相關問題