我想编写一个可以关闭远程Ubuntu系统的脚本。实际上,当我关闭安装了我的VM的主机时,我希望我的VM安全关闭。
在Sh脚本或用Python等任何语言编写的脚本的帮助下是否有这样做。
答案 0 :(得分:5)
您可以从远程Linux计算机(VM Host)运行以下命令:
ssh root@<vm-client-ip> "shutdown -h now"
您必须输入远程计算机的root密码。您可以通过添加ssh证书来防止这种情况(如果您正在编写脚本,那么很好):
如果您使用此脚本制作脚本,请不要忘记在关机后添加延迟(例如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访问。