4

我想重新启动一些实例ec2.reboot_instances([instanceId]),并且效果很好,但是:

  1. 如何验证是否发生了重启?我认为launch_time会被更改,但看起来所有参数都保持不变。我更愿意在没有 ssh 或 ping 的情况下进行此检查 - 可能吗?也许有可能以instance.get_console_output()某种方式使用?

  2. 从文档中不清楚我是否应该在尝试重新启动之前添加一些实例状态检查。如果实例被终止,请求将被忽略,这很清楚 - 但如果是停止或挂起 - 我应该使用其他东西(开始)吗?

4

1 回答 1

7

这个 shell 命令会告诉你系统已经启动了多长时间:

ssh hostname uptime

要使其自动化,您需要将 ssh 公钥添加到.ssh/authorized_keys主机上的文件中。

使用 boto 可能是这样的(尽管我没有使用过 boto):

s = boto.manage.cmdshell.SSHClient(hostname, uname='root')
s.run('uptime')

请参阅boto manage 模块上的参考资料

于 2012-10-30T18:20:08.973 回答