关闭Ubuntu的脚本

时间:2012-11-23 19:01:00

标签: python linux bash ubuntu sh

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

在Sh脚本或用Python等任何语言编写的脚本的帮助下是否有这样做。

6 个答案:

答案 0 :(得分:5)

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

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

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

SSH login without password

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

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

#!/bin/bash

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

答案 1 :(得分:2)

您可以使用虚拟机管理程序,即qemu / KVM

的qm脚本
qm shutdown 300 && qm wait 300

它以ID 300关闭VM,并等待VM停止。有关更多选项,请参阅qm手册。

答案 2 :(得分:2)

关闭Linux系统的方法有很多种。首选方法是调用窗口管理器的关闭顺序。如果您正在使用gdm(如果您使用的是Ubuntu,则可能使用gnome-session-quit --power-off

kdm

如果您使用的是kdmctl shutdown ,则命令为:

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

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

{{1}}

等等。

答案 3 :(得分:1)

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

$ shutdown -h now

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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

那应该给你一个SOAP接口,它应该允许你通过例如远程控制卷曲。

或者对于远程方面,您可以在服务器上设置私钥验证并在本地保存密钥的密码(例如Seahorse),这样您就可以在不需要每次输入密码的情况下保护ssh访问。