libvirtまたはvirshを使用してゲスト仮想マシン内でiostatなどのコマンドを実行できますか?ゲスト仮想マシンのIOPSを確認したいのですが、libvirt java apiを使用すると仮想マシンのIOPSを取得できないため、別の方法はゲスト仮想マシン内でiostatなどのコマンドを実行して記録することです。読み取り値。
答え1
仮想マシンに仮想シリアルコンソールが設定されている場合は、この
virsh console
コマンドを使用して接続できます。スクリプトを使用して
expect
ユーザー名とパスワードでログインし、コマンドを実行し、出力を抽出してログアウトする必要があります。expect
ただし、これは単一目的の言語であり、私の考えにはまだわからない場合は、学習/使用する意味がないことに注意してください。それを学ぶのにかかる時間、perl
または同じ共通言語を学ぶのに投資する方が良いでしょうpython
。これはあなたがしたいことになるという追加の利点がありますたくさん
perl
Expect.pm
orモジュールpython
の使用はpexpect
それ自体を使用するよりも簡単ですexpect
。expect
セッションからデータを抽出する機能は、何ができるかと比較して非常に制限的でプリミティブですperl
。python
ところで、あなたはJava APIについて言及しました。クイックGoogle検索を使用すると、同様のJavaライブラリの実装が
libvirt
少なくとも2つ以上あることがわかります。expect
さらにあるかもしれません。https://github.com/ronniedong/Expect-for-Java
https://github.com/Alexey1Gavrilov/ExpectIt
私はJavaプログラマーではなく、そのうちのどれも使ったことがなく、どんな利点があるのかわからず、他のものよりもお勧めできません。
または、仮想マシンにIPアドレスを持つネットワークインターフェイスがあり、それがインストールされて
sshd
いる場合(またはインストール可能な場合)、ssh
他のホストと同様に仮想マシンに入ることができます。これはあなたが望むことを達成する最も簡単で最善の方法です。