Linux在X时间不活动时closures服务器

我有按小时付费的开发服务器。
有些机器在一个星期内没有真正使用,有没有一种机制会在X时间之后closures服务器,使其不活跃。
通过主动我的意思是,没有SSH连接,没有磁盘更改和shuch …

谢谢

服务器总是在做一些事情(写日志,运行init进程,内核的东西等)。 您是否真的在问, 如何知道用户何时不使用服务器

用户活动

如果你是在用户活动之后,我会看看pinky命令。 我build议你写一个每小时运行一次的cronjob,并且parsingpinky的输出。 它会告诉你什么时候任何活跃的TTY最后都有活动,并且和用户有什么关系。

 $ pinky Login Name TTY Idle When Where jdoe John Doe ?:0 ????? 2016-07-28 13:13 :0 jdoe John Doe pts/1 00:14 2016-07-28 13:15 :1 

套接字活动

这是不太可靠的,但如果你只需要知道是否有外部连接到服务器(HTTP等),你可以parsingnetstat -tupn的输出。 如果服务器进行传出连接,则可能需要将其过滤掉。

除非你确切地知道你在找什么连接,否则我不build议这样做。 如果你不是非常具体,你的误报率(和意外closures)可能会相当高。

通常这些日子,这基本上是通过自动缩放来完成的,但是更多地指的是在一些容器环境中运行的容器实例,比如Kubernetes(在这样的环境中它是一个共同的特性)。

你不会说这些机器是硬件还是虚拟的。 如果他们是硬件机器,一个有点传统的解决scheme是迁移到虚拟化环境(可能重用服务器,提高服务器密度,并可能减less服务器数量),这将允许您热门迁移到更less的主机上,需要。 我想VMWare可能已经有这样做的工具了。

但是你已经说过这是一个开发环境,所以我给你提供一些潜在的解决scheme。

1)有一些东西,只是closures他们,并按计划启动它们; closures是否通过cron或其他企业工作调度激活是由您决定的; 而且您可能无法远程启动机器。 您需要考虑的一个因素是,您希望机器可用于修补和策略更新。 时间表也会使用户的期望更加一致。 如果硬件,BIOS设置可以用于启动,或针对您的虚拟环境的脚本。

2)由于这是一个开发环境,你可以看一下Vagrant,并从一个(可能是共享的)开发环境转到每个开发人员工作站上的开发环境…这很可能是一个比你准备的更多的转变尽pipe如此。 有一点点的学习曲线,你可能需要增加开发人员可用的资源,但是你的开发人员可能会抓住这个机会,这很大程度上取决于你可能想要接受基础结构作为代码(IaC)的概念,可重复的configuration环境。

… 3)根据您的环境和开发系统的性质…我可以想象一个HTTP负载平衡器,当所有的成员服务器closures,将客户端redirect到一个页面,使他们能够请求环境开始。

希望能给你一些有成效的想法。

干杯,卡梅隆