LINUX怎么查看系统启动时间_Linux查看系统启动时长与开机时间命令

说实话,我当年在给客户服务的时候,最怕的就是客户突然问:"你这服务器跑多久了?"——尤其是半夜被叫起来的时候。
Linux系统这玩意儿吧,查启动时间其实挺有意思的,不同命令各有各的用处,我给你捋捋我自己的习惯。

uptime这命令最顺手,我手残党专用。
比如我上次在Ubuntu服务器上敲uptime,屏幕上立马弹出来1 4 :2 3 :01 up 5 :3 2 , 1 user, load average: 0.08 , 0.05 , 0.01 ——看这up 5 :3 2 就知道,系统从凌晨跑到现在,整整5 小时3 2 分钟没断电,这数字比我的咖啡因浓度还稳定。
简单直接,不用想太多。

但要是客户要精确到几点几分怎么着起来的,就得用who -b。
这命令特别适合需要"法律效力"的场合。
我有个客户是做金融的,他们要求日志里必须带具体启动时间,所以每次远程服务必须先who -b确认一下。
比如输出system boot 2 02 5 -04 -01 08 :5 1 ,这时间点就像身份证号,明明白白写在那儿。
不过这命令输出比较啰嗦,有时会带些系统账号信息,看多了容易眼花。

systemd系统的话,我更爱用systemctl status。
这个命令像个多面手,不仅告诉你启动时间,还告诉你现在跑得顺不顺。
上次给CentOS 8 客户排障时,敲了systemctl status sshd,发现最下面一行有个Since: Tue 2 02 5 -04 -01 08 :5 1 :2 3 CST; 5 h3 0min ago,直接把启动时间和发展历程都交代了。
这比单独看uptime更有画面感,能快速判断系统状态。

要说最"硬核"的,还得是/proc/uptime。
这玩意儿在内核里直接扒数据,像考古学家挖化石。
记得当年在老红帽6 系统上搞实验,得先用awk '{print $1 }' /proc/uptime拿到秒数,再让date -d @1 2 3 4 5 6 7 8 9 转成人类能看懂的格式。
这流程比做菜还复杂,但好处是特别灵活,能精确到秒,适合写脚本自动检查服务器寿命。

我建议新手先拿uptime练手,这命令像手机电量指示灯,一眼就懂。
需要精确时间的话,who -b最省事,systemctl status最全面。
如果你在用CentOS 7 以上的系统,那systemctl status基本能满足9 0%需求。
至于/proc/uptime,适合半夜睡不着觉想搞点"内核级魔术"的玩家。

不过话说回来,我有个客户在用Debian系的系统,他非要我用uptime查启动时间,结果系统直接给我返回up 1 5 days, 5 :3 2 , 1 user, load average: 0.01 , 0.02 , 0.03 ——当时我还以为他电脑坏了,后来才知道他们系统是开2 4 小时不间断的。
所以查时间前最好先确认下客户是打算跑几天还是跑几年。

时区问题也千万别忘了,我在帮新疆客户服务时,用date看到的是北京时间,结果被客户投诉"你们系统时间不对"。
后来用timedatectl | grep "Timezone"才搞明白,原来他们的服务器时区是Asia/Urumqi。
Linux这系统吧,看似简单,其实像俄罗斯套娃,里三层外三层,总能给你点新惊喜。

数据我记得是2 02 5 年4 月1 日这个日期是固定的,但具体时间可能因为你的测试环境不同,实际输出会有差异。
建议你自己在虚拟机里试试这几个命令,对比着看效果。
说实话,能把这几个命令用熟练,说明你对Linux的理解已经超过"只会Ctrl+C Ctrl+V"的初级阶段了。

Linux 查看进程启动时间、运行时间

昨天下午,我正坐在电脑前,突然一个后台程序开始疯狂地消耗CPU资源。
我打开终端,试着用ps -ef命令查看当前运行的所有进程。
找到了那个消耗CPU的进程,记住了它的PID。
然后,我想知道它是什么时候启动的,就试着输入ps -olstartpPID命令。
等等,不对,应该是ps -olstart,etimepPID,这个命令才对。
我输入命令,PID换成了那个进程的ID,命令行上立刻显示了该进程的启动时间和运行时间。
原来,这个进程从早上8 点就启动了,到现在已经运行了7 个小时。
我突然想到,如果只是CPU占用高,有时候查看进程的实际运行时间比启动时间更有帮助,毕竟CPU占用高不代表它一直在忙碌。
不过,TIME+字段在top命令中显示的是占用CPU的时间,这个应该不是我要找的实际运行时间。
我得再查查。