2013-01-15 57 views
1
# This Perl script open connection and call domains 
# $jar stands for path of jmxterm jar file 

open JMX, "| java -jar jmxterm-1.0-alpha-4-uber.jar -n"; // jmx jar file 
#print JMX "help \n"; 

my $host = "127.0.0.1"; // hostname 
my $port = 7199; //jmx port number 

print JMX "open $host:$port\n"; 
#print JMX "domains\n"; 
print JMX "domain org.apache.cassandra.request\n"; 
print JMX "bean type=ReadRepairStage\n"; 
print JMX "get CompletedTasks\n"; 
print JMX "close\n"; 
close JMX; 

目前我得到的輸出作爲CompletedTasks = 1234,我需要1234如何從Linux的輸出用perl提取顯示的號碼

+0

要輸出到哪裏?標準輸出?如果是這樣,你必須聽取choroba並考慮雙向溝通解決方案。 – TLP

+0

這就是標準輸出。我對perl相當陌生,如果我使用open2並重寫上面的代碼,該如何執行jar? – srp

+0

看看文檔,它應該告訴你如何使用它。但是,你確定perl是最好的工具嗎?如果你不知道perl,而你正在執行java,爲什麼還要增加複雜性? – TLP

回答

0

您不能使用簡單的open建立雙向通信。有關更多信息,請參閱IPC::Open2

+0

感謝回覆@choroba。但我只需要讀取bean中的值並使用這些值來繪製圖形 – srp

0

Jmx4Perl爲訪問JMX信息提供了完整的Perl API。此處不需要啓動JVM,但需要安裝Jolokia代理(但也有代理proxy mode)。

因爲代理通過簡單的JSON和HTTP公開JMX API,所以您也可以輕鬆使用純shell腳本訪問代理。

相關問題