Libvirtまたはvirshを使用して、ゲストVM内でeg:iostatのコマンドを実行することは可能ですか?ゲストvmのIOPSを確認したいが、libvirt Java apiを使用していないvmのIOPSを取得できるため、別の方法として、ゲストvm内でiostatのようなコマンドを実行し、読み取り値を削除する方法があります。
VMの仮想シリアルコンソールを設定している場合は、virsh console
コマンドを使用してそれに接続できます。
expect
スクリプトを使用してユーザー名とパスワードでログインし、コマンドを実行して出力を抽出し、ログアウトする必要があります。
ただし、expect
は単一目的の言語であり、IMOでは、まだ知らない場合は学習/使用する意味がありません。学習にかかる時間をPerl
やpython
のような汎用言語の学習に費やす方がはるかによいでしょう。
これには、Perl
のExpect.pm
またはpython
のpexpect
を使用すると、やりたいことが[〜#〜]簡単になるという追加の利点がありますexpect
自体よりもモジュール。セッションからデータを抽出するexpect
の機能は、Perl
またはpython
のどちらかが実行できる機能と比較すると、かなり限定的で基本的なものです。
ところで、あなたはlibvirt
のJava API-Googleをすばやく検索すると、Javaのexpect
- likeライブラリの実装が少なくとも2つあることがわかりました。もっとあるかもしれません。
https://github.com/ronniedong/Expect-for-Java
https://github.com/Alexey1Gavrilov/ExpectIt
私はJavaプログラマーではありません。これらのどちらも使用したことがなく、どれが良いかわからず、どちらか一方を推奨することはできません。
または、VMにIPアドレスのネットワークインターフェイスがあり、sshd
がインストールされている(またはインストールできる)場合、ssh
をVM asこれは、他のホストと同じです。これは、断然、最も簡単で最良の方法です。