我使用 VMware vsphere client v5.5。我开发了一个简单的 shell 脚本,它基本上使用命令“lscpu”提供有关系统的信息。现在假设我有两个虚拟机,两个虚拟机都安装了 RHEL 6.5。假设我已经登录到 VM 1 并且该 VM1 中存在 shell 脚本,现在我想要有关 VM2 的信息并且我想从 VM1 在 VM2 中运行这个 shell 脚本文件并在 vm1 上取回结果,我该怎么做?我发现的一个想法是使用 ssh ,但我不太确定,谁能告诉我如何做到这一点。
最佳答案
因为它只在 VM 中运行(我认为安全性不是问题),你可以在 VM2 中设置一个简单的 TCP 服务器来监听连接,你可以在 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
(您的 shell 脚本的路径)和 port
字段然后你就可以开始了。
服务器启动后,您可以通过在 VM1 中执行以下命令在 VM2 中运行您的脚本,
netcat $vm2_ip $port
这将在 VM2 中执行脚本并在 VM1 中显示结果。
关于linux - 如何在一个 linux 虚拟机上运行一个 shell 脚本,在另一个 linux 虚拟机上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44235991/