1

我已经查看了 SOF 上的所有答案,但没有看到什么可行。

我的目标:

让 EC2 QA 服务器在上次使用后 55 分钟自行停止

我的策略:

每次使用远程机器时,首先检查它是否正在运行。如果是,请执行以下操作:

  1. ssh 进入机器
  2. run 'sudo shutdown -c' #clears last pending shutdown
  3. 运行 'sudo shutdown -h +55' #restarts timer for 55 分钟关机
  4. 出口

去做我剧本的事

什么有效:

所有命令都在 1 和 2 本地工作。数字 3 和 4 是部分的,如下所述。

什么不起作用:

调用新的关闭停止的行,它等待 ssh 连接关闭,对于末尾没有“&”的命令版本永远不会这样做。

我试过的:

echo "nohup sudo shutdown -h +55; 退出" | ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress

echo "nohup sudo shutdown -h +55& 退出" | ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress

echo "sudo 关机 -h +55& 退出" | ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress

ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress nohup sudo shutdown -h +55

ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress nohup sudo shutdown -h +55; 出口

什么样的作品:

ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress nohup sudo shutdown -h +55&

ssh -i $HOME/.ec2/cert_name root_user_name@ipad.dress sudo shutdown -h +55&

什么是“排序”:

部分成功的命令设置关闭,退出 ssh 就好了。但是他们用远程屏幕上的最后一个命令结果填充本地屏幕缓冲区。这与脚本中下一个命令的结果一起出现。

我想我可以连续两次发出“回显“刷新缓冲区”并清除它。

那里有更完整和更清洁的东西吗?

TIA

4

1 回答 1

1

好的,4 天后,我有一些效果很好的东西。我在谷歌或堆栈溢出搜索中没有看到类似的东西。

本质上,便宜的服务器用作更昂贵的服务器的保持活动(120 分钟)或重新启动(如果已经超时)控制器。对于比(1 台便宜的服务器)->(1 台昂贵的服务器)更复杂的设置,有一些提示。否则称为“读者练习”:-)

https://github.com/kwince/costlyServerShutDown

保持活动或重新启动的触发器是在廉价服务器的 apache 服务器根目录上执行“wget”文件。同样,快速而肮脏,但非常有效。

于 2012-07-12T21:05:06.547 回答