web-dev-qa-db-ja.com

ゲストVM Libvirt内でコマンドを実行する

Libvirtまたはvirshを使用して、ゲストVM内でeg:iostatのコマンドを実行することは可能ですか?ゲストvmのIOPSを確認したいが、libvirt Java apiを使用していないvmのIOPSを取得できるため、別の方法として、ゲストvm内でiostatのようなコマンドを実行し、読み取り値を削除する方法があります。

5
arpit joshi
  1. VMの仮想シリアルコンソールを設定している場合は、virsh consoleコマンドを使用してそれに接続できます。

    expectスクリプトを使用してユーザー名とパスワードでログインし、コマンドを実行して出力を抽出し、ログアウトする必要があります。

    ただし、expectは単一目的の言語であり、IMOでは、まだ知らない場合は学習/使用する意味がありません。学習にかかる時間をPerlpythonのような汎用言語の学習に費やす方がはるかによいでしょう。

    これには、PerlExpect.pmまたはpythonpexpectを使用すると、やりたいことが[〜#〜]簡単になるという追加の利点があります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プログラマーではありません。これらのどちらも使用したことがなく、どれが良いかわからず、どちらか一方を推奨することはできません。

  2. または、VMにIPアドレスのネットワークインターフェイスがあり、sshdがインストールされている(またはインストールできる)場合、sshをVM asこれは、他のホストと同じです。これは、断然、最も簡単で最良の方法です。

2
cas