linux服务器启动时间

说实话,看Linux服务器启动时间这事啊,我以前在某个外包项目上遇到过点麻烦。
那会儿有个客户半夜打电话来,说服务器突然卡死,怀疑是系统出问题了。
我远程登录过去,想快速定位问题,结果发现连启动多久都没搞清楚,这当然不行。

你看啊,最直接的方法其实是用who -b。
我试过这个,命令行一敲,系统直接回你家上次启动的具体日期和时间。
比如显示"system boot 2 02 3 -01 -1 5 03 :1 0",那不就一目了然了?这个命令的好处就是简单粗暴,不需要额外计算,特别适合新手或者赶时间的时候用。

但有意思的是,有些场景下uptime可能更实用。
比如你监控服务器健康状态,习惯用uptime看负载和运行时间。
那只要当前时间减去显示的运行时长,就能大概知道启动日期。
我有个朋友就用这个方法,他搞了个脚本,每天自动记录uptime输出,发现某台服务器运行时间突然从5 天变到6 天,马上就定位到是凌晨重启过。

不过要说最详细的信息,还得是dmesg。
我之前调优内核参数时,经常用dmesg | grep "Booted"。
那输出里头不仅告诉你启动时间,还附带着当时的硬件状态和内核版本。
我记得有一次查一台老服务器,dmesg里直接能看到"Booted kernel 2 .6 .3 2 -7 5 4 .el6 .x8 6 _6 4 on an x8 6 _6 4 ...",这种信息对追溯历史问题特别有帮助。

当然,最不怕折腾的还是看/proc/uptime。
这个文件里头,第一个数字就是秒数。
比如读到"8 6 4 00.1 2 3 ",换算成天就是2 4 天。
我试过用Python脚本自动解析这个文件,结合date命令生成完整日期,特别适合做自动化监控。
但说实话,对于普通运维来说,直接敲who -b可能更省事。

最后那个查日志文件,我倒没常用。
/var/log/boot.log确实有启动记录,但有时日志格式太乱,找起来费劲。
除非是特殊系统,比如OpenStack那些,日志管理特别严格,才会专门看这个。

所以你看,这几种方法各有各的用场。
你想快速定位问题,who -b最合适;要做长期监控,uptime配合脚本不错;想查硬件或内核细节,dmesg最全面;搞自动化运维,/proc/uptime是首选。
具体用哪个,得看你的实际需求。

Linux 上查看系统/服务器运行时间的 11 种方法

uptime直接看系统运行天数。
w命令快速查登录用户和负载。
top实时监控进程,找耗资源的大哥。
who简单看谁在线。
last追踪用户登录日志。
/proc/uptime秒级看启动时间。
tuptime保留重启历史,时间更全面。
htop交互式,方便深度排查。
glances跨平台,系统资源一目了然。
stat查看文件系统状态,性能问题快照。
procinfo整合/proc数据,信息丰富。

你自己掂量。

linux重启服务器命令rebootlinux重启服务器命令

直接说,Linux定时重启用reboot命令。

比如,每天早上5 点重启,用crontab编辑:
0 5 reboot
然后,让crontab生效,重启cron服务:
crontab -e
保存退出后,运行:
service crond restart
或者直接重启系统:
reboot
有问题,你自己看。