如何在VM挂起之前执行一些shell脚本?

如何在VM挂起之前执行一些shell脚本?

我创建了一台 Centos 虚拟机。我还创建了一些 IP 别名。一旦我暂停并恢复虚拟机,我的 IP 别名就会全部消失。所以我只想在暂停之前捕获别名地址并在恢复后调出这些 IP。

这个怎么做?

我只想要一个脚本,我不想为此使用 VMware 工具..

答案1

在 CentOS 中,可以通过使用名为 .clone 的配置文件来创建别名(NIC 品种 - 又名.clone 设备)ifcfg-<if-name>:<alias-value>。这些文件位于此处:/etc/sysconfig/network-scripts/.

例子

创建以下文件,/etc/sysconfig/network-scripts/ifcfg-eth0:0。然后在文件内创建以下内容:

DEVICE=eth0 
ONBOOT=yes 
BOOTPROTO=dhcp

您可以在此处添加其他行,具体取决于别名/克隆的性质;行例如:

NETWORK=10.0.1.0 
NETMASK=255.255.255.0 
IPADDR=10.0.1.27 
USERCTL=no

有关更多详细信息,请参阅 RHEL/CentOS 官方文档,它们很好地涵盖了众多选项并且易于理解,标题为:13.2.接口配置文件

打开/关闭网络接口

添加行后,您可以使用此服务停止/启动网络堆栈:

$ sudo /etc/init.d/network <cmd>

仅启动/关闭单个 NIC 设备:

$ sudo ifup <interface>
$ sudo ifdown <interface>

例子

调出整个网络堆栈:

$ sudo /etc/init.d/network start

调出个人界面:

$ sudo ifup eth0:0

在虚拟机状态更改期间运行自定义脚本

如果您不想更改所有别名,则可以使用 VMware 提供的工具来创建将在其状态更改(挂起/启动/停止/恢复)期间运行的脚本。

可执行 ( chmod +x ...) 的自定义脚本可以放置在这些目录中。

  • (工具目录)/script/resume-vm-default.d/
  • (工具目录)/script/suspend-vm-default.d/
  • ETC。

ToolsDir 的位置取决于软件在系统上的安装位置。如果您不确定该位置在哪里,则必须搜索该位置。

相关内容