我有 2 台服务器,其中一台报告正常运行时间为 9 小时,另一台为 7 小时。我没有其他监控系统。我的“托管”提供商表示,这是一次电源峰值事件,导致两台服务器都重新启动,并且正常运行时间的准确性不可信。他的说法有道理吗?两台服务器同时重新启动,正常运行时间会相差 2 小时吗?谢谢。
答案1
是否可以信任 Linux 正常运行时间值来精确定位停机时间?
不。
/proc/uptime
和/或该uptime
命令只告诉你系统运行了多长时间,即它允许你确定系统运行了多长时间已恢复因停电。
即使您没有监控last -F reboot
或快速检查/var/log/messages
通常会显示最后记录的消息和系统恢复之间的时间间隔,让您(粗略地)估计中断的持续时间。
据我所知,正常运行时间是一个简单的不断增加的内核计数器,不受系统时钟的日期/时间操作的影响。也就是说,当您更改时区或使用 NTP 等更改系统时间/日期时,命令date
或使用 操作(不正确的)硬件时钟hwclock
,这不会改变正常运行时间计数器。
如果您的系统的正常运行时间相差两个小时,并且遭遇相同的中断,那么最明显的结论是,其中一个系统从该中断中恢复又需要两个小时……
顺便说一句,造成这种情况的原因有很多,可能非常合理。
答案2
uptime
仅当您想知道系统自上次启动以来运行的时间时才有效,仅此而已。
相反,tuptime
记录系统启动和关闭事件。这有助于显示异常关闭,例如由断电和挂起引起的关闭,因为它们的报告在“结束”列下包括它是正常还是错误:
$ tuptime -t
No. Startup Date Uptime Shutdown Date End Downtime
1 22:21:49 05/15/18 50 minutes and 44 seconds 23:12:33 05/15/18 OK 13 seconds
2 23:12:46 05/15/18 1 minute and 2 seconds 23:13:48 05/15/18 OK 18 hours, 57 minutes and 18 seconds
3 18:11:06 05/16/18 2 minutes and 34 seconds 18:13:40 05/16/18 BAD 1 hour, 48 minutes and 6 seconds
4 20:01:46 05/16/18 1 hour, 29 minutes and 30 seconds 21:31:15 05/16/18 BAD 14 minutes and 31 seconds
5 21:45:47 05/16/18 19 minutes and 42 seconds 22:05:28 05/16/18 OK 21 hours, 7 minutes and 18 seconds
6 19:12:47 05/17/18 37 minutes and 1 second 19:49:47 05/17/18 OK 26 seconds