我希望我的家用GNU / Linux服务器在闲置30分钟后closures电源。 对于“活动”,我在想
如果发生任何这些事情,我希望30分钟的倒计时重置。
前两个看起来很可行。 我可以写一个长期运行的Python或Bash程序
shutdown -h now耐心等待30分钟发出shutdown -h now 但是我不确定如何跟踪SSH活动。 有没有一个简单的方法来做到这一点? 我不是真的有兴趣处理libpcap什么的,除非它非常简单。
另一个令我感到震惊的是,这可能是一般的有用的,所以也许我会做一些可扩展的,并将它作为自由软件发布。
我不确定它是否相关,但有问题的服务器正在运行Ubuntu 10.04.4 LTS。
我的问题与此类似,除了活动检测。
不要写一个长期运行的程序。 使用cron每五分钟运行一次脚本以创build一个半小时前的文件(使用touch命令),然后检查各种日志文件是否比参考文件(使用testing命令)更新。
也许在你的系统中,sshd通过sysloglogging到/var/log/messages文件。 这不适合你的目的,因为许多其他的事情也logging在那里,所以你可能需要编辑/etc/syslog.conf以便sshd也login到你可以监控的专用日志文件。
在closures电源之前,您应该也可以检查是否有人login。 (并且取决于你使用ssh的情况,这对于ssh来说可能是足够的,在这种情况下你不需要担心sshd日志。)
如果其他人发现这个有用,我会感到惊讶。
PowerNap是一个提供这种function的项目。 不幸的是,条件不容易扩展,所以如果条件不符合你的要求,你需要破解代码或find其他的东西。
您可以使用netstat -p来查找与sshd相关的连接(如果在足够的权限级别下运行,比如root),并且Apache的诊断页面(由mod_status启用)可以告诉您服务器是否在做某事可以从访问页面剥离日志并将其locking到仅来自本地主机的请求)。 我相信CUPS也有一个HTTP访问诊断,就像活动工作列表(或者只是使用lpq -a )。