私はVMware vsphere client v5.5を使用しています。私は、基本的にコマンド "lscpu"を使ってシステムに関する情報を与えるシンプルなシェルスクリプトを開発しました。私は2つのVMを持っていると仮定して、両方のVMのRHEL 6.5がインストールされている。私がVM1にログインしていて、シェルスクリプトがこのVM1に存在するとしたら、VM2に関する情報が必要です。このシェルスクリプトファイルをVM2からVM1から実行し、VM1の結果を取得したいのですが、どうすればいいですか?私が知った一つのアイデアはsshを使っていましたが、私はそれについてあまりよく分かりません。別のlinux vmの1つのlinux vmにあるシェルスクリプトの実行方法
答えて
これはVMでのみ実行されるため(セキュリティは問題ではないと思われます)、接続をリッスンする単純なTCPサーバーをVM2にセットアップして、VM1に接続するnetcatクライアントを設定できます。サーバーを起動し、スクリプトを実行して結果を取得します。
これは簡単にxinetd
の助けを借りて達成することができます。
まず、xinetdをインストールする必要があります。あなたがUbuntuのかUbuntuのベースのディストリビューションを実行している場合:
sudo apt install xinetd
あなたのスクリプトを実行するためにxinetdを設定する必要があります。この特定のガイドをsetting up xinetdで参照して、サーバーを構成することを強くお勧めします。
デフォルトの設定をそのまま使用できます。
service myscript
{
type = UNLISTED
socket_type = stream
wait = no
user = username
group = groupname
server = /path/to/your/script.sh
log_on_failure += USERID HOST
disable = no
port = 1593
}
ただ、それに応じてuser
、group
、server
(あなたのシェルスクリプトへのパス)とport
フィールドを編集し、あなたが行くように設定されています。
サーバーが起動したら、あなたはVM1で次のように実行することにより、VM2でスクリプトを実行することができ、
netcat $vm2_ip $port
これはVM2でスクリプトを実行し、VM1で結果が表示されます。
あなたは他のVMよりも簡単にsshを実行できます。
は、パスワードを入力するか、またはあなたがそのターミナルと同じようにあなたがVM2上で任意のコマンドを実行することができ、ここから最初の文で
sshpass -p password ssh [email protected]
それを提供することができます。
cat
などを少し探せば、さらに多くのことができます。
ここでは2つの異なる質問、実際にあります。
は、リモートからコマンドを実行する方法?
ssh
は道のりであることを説明する他にもたくさんの回答があります。私は、スクリプトから実行したいときに、パスワードを要求するのを避けるために、非対称キーでssh
を設定する必要があるという精度を追加するだけです。ターゲットVMでルート特権が必要な場合は、指定されたユーザーがパスワードなしでsudo
にアクセスできるように特殊なsudo
構成を構築する必要があります。リモートVM上でコマンドをアクセス可能にする方法は?
あなたは、ローカルVM上のスクリプトを読んで、その行をsshを通してリモートのものに渡すことができます。しかし、多くのリモート管理を行いたい場合は、共有ファイルシステムを設定することもできます。 NFS、AFSを使用することも、共通のホスト・フォルダを共有することもできます。これにより、管理スクリプトの管理ポイントが1つだけで、すべてのVMから明示的にアクセスできるようになります。
- 1. Redis Linux VMのBGSAVE
- 2. AzureバッチLinux VMスクリプトを実行中
- 3. クローンAzure Linux VM
- 4. Vagrant:1つのVMを名前別に別のVMを探す方法
- 5. Cali Linux VM内のセグメンテーションフォールト
- 6. Microsoft Azure Linux VMドメインのリダイレクト
- 7. LinuxのVMでノードプロジェクトを実行するには?
- 8. Azure Linux VMとBitBucket
- 9. Azure Linux VM + ASP.NETアプリケーション
- 10. Linux上のどのバージョンのVMで
- 11. AzureのLinux VMへのHTTPアクセス
- 12. LinuxマシンまたはVMのEclipse Kuraインストール
- 13. Azure Linux VMのファイル構造を表示
- 14. Selenium Grid - Linux VMのテストを開始
- 15. AzureでLinux VMに接続する
- 16. Linux VM(RHEL)にGitをインストールする
- 17. 1つのVMから別のVMにファイルをコピーするためのレシピを書く方法
- 18. Linuxシェルスクリプトの1行if/else条件
- 19. ドッキングホストと64ビットLinux VMをホスト上で実行windows10
- 20. アーチLinux VMでtmuxを実行できません
- 21. 東北アメリカにA0 Linux VMを配備する方法は?
- 22. VM oracle enterprise linuxからホスト・ファイルにアクセスする方法
- 23. Azure VMでSSLを設定する(Linux)
- 24. Linux VMのトラフィックを特定のIP範囲に制限する方法は?
- 25. 1つのファイルを別の\ Linuxにマージする方法
- 26. linuxのフォルダにある別のファイルを開くためのシェルスクリプト
- 27. Linuxシェルスクリプトの実行中にメッセージを待つ
- 28. Azureでlinux VMをキャプチャ新しいポータル
- 29. Azure ARM Linux VMパブリックIPとドッカー
- 30. Microsoft AzureでLinux-VMを複製/複製する方法はありますか?
sshは良い方法です。 「sshを使ってリモートコマンドを実行する」ことについてグーグルで試してみてください。多くの例があります。 – gile