linux怎么设置远程断开时间,关于退出:通过SSH在远程LInux上设置延迟关闭时间,然后退出...

我已经在SOF上查看了所有答案,但没看到什么会起作用。

我的目标:

在最后一次使用55分钟后,让EC2 QA服务器停止运行

我的策略:

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

ssh进入机器

运行'sudo shutdown -c'#clears last pending shutdown

运行'sudo shutdown -h +55'#restarts计时器关闭55分钟

出口

关于我的脚本业务

什么有效:

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

什么行不通:

调用新关闭的行停止,它等待ssh连接关闭,这对于没有'&'的命令版本来说永远不会。

我尝试过的:

echo"nohup sudo shutdown -h +55; exit"| ssh -i $ HOME / .ec2 / cert_name root_user_name@i.p.ad.dress

echo"nohup sudo shutdown -h + 55&exit"| ssh -i $ HOME / .ec2 / cert_name root_user_name@i.p.ad.dress

echo"sudo shutdown -h + 55&exit"| ssh -i $ HOME / .ec2 / cert_name root_user_name@i.p.ad.dress

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

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

什么工作:

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

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

什么是'排序':

部分成功的命令设置了关闭,并退出ssh就好了。但它们用REMOTE屏幕上的最后一个命令结果填充LOCAL屏幕缓冲区。这就是脚本中下一个命令的结果。

我想我可以连续两次发出'echo'刷新缓冲区并清除它。

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

TIA

虽然我仍然想知道答案。 我发现整体设计存在问题。 在shutdown命令的最后5分钟内,不允许登录。 所以我总是有这个5分钟的窗口,服务器可能会被卡住,因为构建或脚本必须等待。

尝试查看ServerFault和SuperUser。

@ dave4420谢谢你的好主意! 我实际上有一个解决方案,我将发布。 它完全消除了窗口问题。

谢谢Dave,不知道SOF是否得到了最后的谢意。

好的,4天后,我有一些非常好的东西。 我没有在谷歌或堆栈溢出搜索中看到这样的东西。

本质上,廉价服务器用作保持活动(120分钟)或重启(如果已经超时)控制器用于更昂贵的服务器。 对于比(1个便宜的服务器) - >(1个昂贵的服务器)更复杂的设置,有关于如何做到这一点的提示。 否则被称为"为读者练习":-)

https://github.com/kwince/costlyServerShutDown

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

我现在已经使用了3个月了。 没有问题,除了我的错误检查不够完整,无法说明最近在弗吉尼亚州的AWS问题中发生了什么。 但除此之外,它现在为我节省了大约180美元。