用于关闭 Ubuntu 的脚本



我想写一个可以关闭远程Ubuntu系统的脚本。实际上,我希望我的虚拟机在关闭安装了虚拟机的主机器时安全关闭。

是否有任何在 Sh 脚本或用任何语言(如 Python)编写的脚本的帮助下执行此操作。

您可以从远程 Linux 计算机(VM 主机)运行以下命令:

ssh root@<vm-client-ip> "shutdown -h now"

您必须输入远程计算机的 root 密码。您可以通过添加 ssh 证书来防止这种情况(如果您正在编写脚本,则很好):

无需密码即可登录 SSH

如果您用它制作脚本,请不要忘记在关机后添加延迟(例如 sleep 10 ),以便 VM 有时间平静地死去。

一个完整的 bash 脚本(未经测试):

#!/bin/bash
ssh root@<vm-client-ip> "shutdown -h now"
sleep 10

您可以使用虚拟机管理程序,即 qemu/KVM 情况下的 qm 脚本

qm shutdown 300 && qm wait 300

它会关闭 ID 为 300 的 VM,并等待 VM 停止。有关更多选项,请参阅 QM 手册。

有很多方法可以关闭Linux系统。 首选方法是调用窗口管理器的关闭序列。 如果你正在使用gdm(如果你正在使用 Ubuntu,你可能正在使用):

gnome-session-quit --power-off

如果您使用的是kdm则命令为:

kdmctl shutdown

关闭计算机的其他方法(可能大部分或完全等效,也可能不完全等效,但都需要超级用户权限)包括:

/sbin/init 0
/sbin/halt
/sbin/shutdown -h now
/sbin/poweroff
等等

等等。

关闭系统的实际命令是关闭,特别是

$ shutdown -h now

现在关闭它。这需要在要停止的计算机上以超级用户权限运行。

您可以从

脚本调用poweroff,只要它以超级用户权限运行即可。

根据您使用的虚拟化产品(例如KVM,VirtualBox,VMWare等),您应该可以使用合适的界面。

我建议您在Google上搜索您选择的虚拟化软件的名称+" API"。上面所有的例子都有相关的结果,可以从例如 Python 调用。

对于VirtualBox,请查看此链接:https://blogs.oracle.com/nike/entry/python_api_to_the_virtualbox

这应该给你一个SOAP接口,它应该允许你通过例如cURL进行远程控制。

或者,对于远程方面,您可以在服务器上设置私钥身份验证并将密钥的密码保存在本地(例如Seahorse),这将允许您保护ssh访问,而无需每次都输入密码。

相关内容

  • 没有找到相关文章

最新更新