我收到系统管理员的电子邮件,说我需要重新启动系统才能应用某些补丁。我已经忘记了,几个小时后,我收到另一封邮件,告诉我我还没有重启系统。
从那以后,我重新启动了系统,但令他们惊讶的是,他们怎么知道我是否重新启动了计算机。有人可以解释这是如何工作的吗?
我收到系统管理员的电子邮件,说我需要重新启动系统才能应用某些补丁。我已经忘记了,几个小时后,我收到另一封邮件,告诉我我还没有重启系统。
从那以后,我重新启动了系统,但令他们惊讶的是,他们怎么知道我是否重新启动了计算机。有人可以解释这是如何工作的吗?
Answers:
可以使用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)中。
sudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
一种简单的方法是检查uptime
命令的输出,该命令显示了在没有关闭/重新启动的情况下运行系统已有多长时间。
样本输出:
saji@geeklap:~$ uptime
12:41:29 up 3:08, 2 users, load average: 1.06, 0.85, 0.86
它说我的系统已经开机了3小时8分钟。
管理员可以设置shell脚本以使用uptime
或使用其他方法,如本链接中所述。管理员可以使用的另一种方法是设置要在系统关闭或重新启动时发送的电子邮件,有关详细信息,请访问此链接。
@ saji89提到了uptime
命令。我再往前走一步,简单地假设sysadmin在某个地方有一个脚本,该脚本连接到每台计算机并执行cat /proc/uptime
(或等效操作)。输出的第一个字段是自上次重新引导系统以来的时间(以秒为单位),它比的输出要容易得多uptime
。例如,我的计算机给出了1441218.24
带有uptime
returning 的第一个正常运行时间字段up 16 days, 16:20
。1441218秒是16天加58818秒,而58818秒是16 1/3小时。16天16 1/3小时。
当您知道自从应该重新启动系统以来的最长时间时,使用此数据就很容易检查自从那时以来是否已重新启动系统。
可以通过诸如Nagios之类的监视工具来完成,也可以通过sysadmin保留在其计算机上的单独脚本(或者,我想可以通过它来访问)来实现,该脚本依次或并行连接到每台计算机并打印时间。自上次以某种格式重新启动以来。这一切都取决于制作方法的复杂程度。
当需要重新启动的软件包已通过更新时apt
,将reboot-required
创建一个名为的文件/var/run/
。系统管理员可以远程检查此文件的存在,以确定是否由于更新而需要重新启动。
apt-get -y upgrade
。)因此,reboot-required
因为从apt的角度来看,不需要重新引导。
这个 ...
应用一些补丁
是关键部分。
如果管理员很好,他可能会从HIS机器上设置更新,因此PC不必从Web下载相同的文件。如果是这样,他可以从自己的计算机上看到谁下载了补丁。
然后,他只需要查看已加载补丁程序的系统的IP地址,然后向未加载补丁程序的系统发送和发送电子邮件。该电子邮件甚至可以是自动生成的邮件。想象有500台机器。如果有几种方法可以用他自己的机器来完成,则手动检查每个方法都是浪费时间。
这样做的一个非常重要的原因:管理员需要控制他需要维护的系统上正在发生的事情。因此,他应该始终具有一个控制点(即拥有所有工具的他自己的机器),可以在其中看到任何机器的状态。
如果系统连接到他控制的网络,则sysadmin可以简单地查看交换机或dhcp服务器,以查看网络连接已激活了多长时间。这也将告诉他您尚未重新启动。