问题描述
我收到了系统管理员的电子邮件,说我需要重新启动系统才能应用一些补丁。我忘记了它,几个小时后我收到另一封邮件,告诉我我还没有重启我的系统。
我已经重新启动了我的系统,但我很惊讶他们是否知道我是否重新启动了我的机器。谁能解释一下这是如何工作的?
最佳解决办法
可以使用SNMP快速检查远程检查(如果您的SysAdmin已在您的网络上进行了设置):
admin@yourcompany:~$ snmpwalk -v 2c -c <snmpstring> MachineName sysUpTimeInstance
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9461615) 1 day, 2:16:56.15
最有可能的是,数据将被轮询并存储在某种网络管理/监视系统中(即Nagios或Cacti)。
如果有人有兴趣使用snmpwalk
命令,请参阅答案here以获得在系统上设置的基本SNMP配置。
次佳解决办法
一种简单的方法是检查uptime
命令的输出,该命令显示在没有关闭/重启的情况下运行系统的时间。
样本输出:
saji@geeklap:~$ uptime
12:41:29 up 3:08, 2 users, load average: 1.06, 0.85, 0.86
它说我的系统已经开机3小时8分钟。
管理员可以设置shell脚本以使用uptime
或使用其他方法,如此link中所述。管理员可以使用的另一种方法是设置要在系统关闭或重新启动时发送的电子邮件,详细信息可在此link中获得。
第三种解决办法
@ saji89提到了uptime
命令。我会更低一点,只是假设sysadmin有一个脚本,它连接到每台计算机并执行cat /proc/uptime
(或类似的东西)。输出的第一个字段是自系统上次重新引导以来的时间(以秒为单位),这比uptime
的输出更容易解析。例如,我的计算机给出1441218.24
的第一个正常运行时间字段,其中uptime
返回up 16 days, 16:20
。 1441218秒是16天加58818秒,而58818秒是16 1/3小时。 16天16 1/3小时。
当您知道自系统重新启动以来的最长时间时,此数据使得检查系统自此之后是否已重新启动变得微不足道。
它可以通过Nagios之类的监控工具完成,也可以通过sysadmin保留在他的计算机上的单独脚本(或者可以通过它来访问,我想象)依次连接到每台计算机或者并行打印时间自上次重启以某种格式。这一切都取决于如何精心制作它。
第四种办法
另一种方法是,为了完整起见,通过最后一个命令查看/var/log/wtmp
。例:
$ last reboot
reboot system boot 3.2.0-36-generic Thu Jan 24 16:25 - 17:42 (1+01:17)
wtmp begins Tue Jan 1 06:30:03 2013
这种方法很受欢迎,因为它也恰好是完美的助记符。
Q: When did the last reboot occur?
A: Just type 'last reboot'
第五种办法
当需要重新启动的程序包已通过apt
更新时,会在/var/run/
中创建一个名为reboot-required
的文件。系统管理员可以远程检查是否存在此文件,以确定是否由于更新而需要重新启动。
第六种办法
这个 …
to apply some patches
是关键部分。
如果管理员有任何好处,他可能会从HIS机器设置更新,因此PC不必从网上下载相同的文件。如果是这样,他可以从他自己的机器上看到谁下载了补丁。
然后,他只需要查看那些加载补丁的系统的IP地址,然后发送给那些没有补丁的系统。该电子邮件甚至可以是自动生成的邮件。想象一下,有500台机器。如果有几种方法可以从他自己的机器中做到,那么手动检查每一个都是浪费时间。
这样做的一个非常重要的原因是:管理员需要控制他需要维护的系统上发生的事情。所以他应该总是有一个单一的控制点(即他拥有所有工具的自己的机器),在那里他可以看到任何机器的状态。
第七种办法
答案中描述了几种有效的方法。登录并检查正常运行时间对于大型公司来说会很奇怪,但对于较小的公司来说却是可行的。系统管理员可以通过SNMP进行检查,但可以在那里使用相同的”trouble”参数。
就我而言,最可能的情况是:
-
系统管理员运行某种checking-software,可能是Nagios,它可以检查计算机集群是否存在问题。像NRPE插件这样的东西将用于大多数系统,并可以显示正常运行时间(除了光盘,登录用户等)。
-
可以使用类似的方法来检查在哪里运行。如果可以检查to-be-updated补丁(您使用的是哪个内核),则“所有用户都已更新”脚本仍将指向您的计算机以处于’bad’状态。