[解決済み] シェルスクリプトからJMX MBeanメソッドを呼び出す
2022-12-06 21:02:32
質問
シェルスクリプトからJMX MBeanメソッドを呼び出すことを可能にするライブラリはありますか。私たちは JMX を通していくつかの操作/管理コマンドを公開し、管理者に JConsole または VisualVM を使用させることができますが、いくつかのタスクは自動化に任せた方がよいでしょう。その自動化において、私たちは、できればシェルスクリプトから、実行中のサーバー上の JMX MBean メソッドを呼び出すことができるようにしたいと思っています。
どのように解決するのですか?
以下のコマンドラインJMXユーティリティが利用可能です。
- jmxterm - は、最も完全な機能を備えたユーティリティのようです。
- cmdline-jmxclient - WebArchive プロジェクトで使用されているものは、非常にシンプルです(2006 年以降、開発されていないようです)。
- GroovyスクリプトとJMX - は本当に強力なJMXの機能を提供しますが、groovyと他のライブラリのセットアップが必要です。
- JManage コマンドライン 機能 - (欠点は JManage サーバが動作している必要があることです。 サーバーが必要です)
Groovy JMXの例です。
import java.lang.management.*
import javax.management.ObjectName
import javax.management.remote.JMXConnectorFactory as JmxFactory
import javax.management.remote.JMXServiceURL as JmxUrl
def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:9003/jmxrmi'
String beanName = "com.webwars.gameplatform.data:type=udmdataloadsystem,id=0"
def server = JmxFactory.connect(new JmxUrl(serverUrl)).MBeanServerConnection
def dataSystem = new GroovyMBean(server, beanName)
println "Connected to:\n$dataSystem\n"
println "Executing jmxForceRefresh()"
dataSystem.jmxForceRefresh();
cmdline-jmxclient の例です。
もしあなたが
- MBean: com.company.data:type=datasystem,id=0
というOperationを持つ。
- jmxForceRefresh()
それから、簡単なbashスクリプトを書くことができます (ダウンロードした cmdline-jmxclient-0.10.3.jar をダウンロードし、スクリプトと同じディレクトリに置くと仮定します)。
#!/bin/bash
cmdLineJMXJar=./cmdline-jmxclient-0.10.3.jar
user=yourUser
password=yourPassword
jmxHost=localhost
port=9003
#No User and password so pass '-'
echo "Available Operations for com.company.data:type=datasystem,id=0"
java -jar ${cmdLineJMXJar} ${user}:${password} ${jmxHost}:${port} com.company.data:type=datasystem,id=0
echo "Executing XML update..."
java -jar ${cmdLineJMXJar} - ${jmxHost}:${port} com.company.data:type=datasystem,id=0 jmxForceRefresh
関連
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
型に解決できない エラー解決
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
SocketException java.netの4つの例外解決策。
-
コンストラクタDate()が未定義である問題
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java基礎 - マッピングとQ/A
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
コンストラクタDate()が未定義である問題
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
アクセス制限の解決方法: ---- in Java