SSHなしでVMでコマンドを実行する最良の方法


0

VMでコマンドを実行し、SSHなしで出力を取得したいのは、VMがインターフェイスをダウンさせる可能性のあるネットワークテストを実行し、IPが常に使用できるとは限らないためです。/ dev / pts / Xでこれを達成する最良の方法は何でしょうか?

を介して任意のコマンドを実行できます

echo "some command" > /dev/pts/2   (or /dev/pts/4 with virtio)

VMで(virt-managerを使用して)確認しますが、出力のキャプチャ方法、コマンドの実行が終了するまでの待機時間、およびリターンコードがわかりません...ヒントはありますか?

これは私のVMのXML抽出です:

<serial type='pty'>
  <source path='/dev/pts/2'/>
  <target type='isa-serial' port='0'>
    <model name='isa-serial'/>
  </target>
  <alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/2'>
  <source path='/dev/pts/2'/>
  <target type='serial' port='0'/>
  <alias name='serial0'/>
</console>
<console type='pty'>
  <source path='/dev/pts/4'/>
  <target type='virtio' port='1'/>
  <alias name='console1'/>
</console>
<channel type='pty'>
  <source path='/dev/pts/3'/>
  <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
  <alias name='channel0'/>
  <address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

SSH用の独立したインターフェースはどうですか?
カミル・マチオロフスキー

ネットワーク全体を再起動して再構成する必要がある場合がありますが、ダウンした場合は、何らかの構成を行うために対話する必要があります。だから、オプションはありません:)
hosselausso

/dev/tty代わりに使用します/dev/ptsか?
ビスワプリヨ

/ dev / ttyを使用する利点はありますか?
ホセラウッソ

回答:


0

以下の方法は、この記事に触発さ:(確保されていない、正しく動作しないことがあり、多くの欠点を持っているのVirtualBoxでゲストからのシリアルポートをホスト使い方

要件:

  • PuttyまたはTCPソケットで生のバイトを送信できるプログラム
  • VirtualBoxまたはハイパーバイザー
  • ルートユーザーのパスワード

手順:

  • Linux VMにVirtualBoxゲストの追加機能をインストールします。シャットダウンします。
  • VirtualBoxでそのVM設定に移動し、「シリアルポート」セクションを開きます。ポート1で「シリアルポートを有効にする」をチェックします。番号(例:1234)。

VirtualBox_Serial_Port_Settings

  • そのVMを起動します。sudo cat /dev/ttyS0 | shVMでこのコマンドを実行します。このコマンドは、VMでシリアルデバイスを開き、出力をシェルにパイプして実行します。
  • ホストOS側で、Puttyを開き、接続タイプでRAWモードを選択しlocalhost、VM設定でホスト名と以前のポート番号を入力します(例:1234)。または、このコマンドを実行しputty -raw localhost -P 1234ます。
  • ここで、パテウィンドウに何でも入力すると、VMのシェルで実行されます。

COMポートとシリアルデバイスは変更でき、このVirtualBoxマニュアルに従ってマッピングされます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.