深入浅出:掌握Linux启动时间查看方法(linux启动时间查看)

Linux作为当前最流行的操作系统,在常规化运维、开发测试等方面有着广泛的应用,有时我们拿到一台新的服务器,想要查看该服务器从开机到现在的启动耗时,应该怎么去查看和计算呢?本文将给出此问题的解决思路,并给出一段代码作为实现示例。

首先,我们应该剖析Linux系统机器的冷启动和热启动,冷启动是指开机状态,服务器硬件未通电,一切处于关机状态,由于是第一次开机,时间上就相当于重启服务器;而热启动是指服务器已经电源通电,但因异常原因关机重新开机的过程,此时计算服务器以上次关机状态至新开机状态的时间段。

从原理上讲,我们可以利用/var/log/messages的内容获取到服务器启动的具体时间,然后将时间转换为UTC时间戳,为后续运算做准备。

脚本实现方面,可以提取/var/log/messages的内容,过滤出启动时间并转换成时间戳格式,最后结果可以存放在一个文件内,提供给运维支持者查看,或者可以利用shell脚本计算时间段,以上面服务器从开机到现在的启动耗时为例,示例脚本如下:

#!/bin/bash
tz='PRC'

#获取服务器启动时间
if [ -f /var/log/messages ] ; then
start_time=$(grep 'kernel.*starting\|Desktop Login' /var/log/messages | head -1| awk '{print $1,$2,$3}')
else
start_time=$(last |grep 'reboot|login'| head -2 |awk 'END{print $4,$5,$6}')
fi
#转换时间格式
start_date=$(date -d "${start_time}" +%Y%m%d%H%M%S -u -d "$tz")
#计算当前与启动时间的时长
startup_time=$((100000000-start_date))/86400
echo "服务器已经运行了$startup_time天"

上面是脚本中示例用于查看服务器从开机到现在的运行时间,可以利用其他工具如mystat判断系统当前状态并计算具体时长。本文以查看服务器启动时间为例,简单介绍了如何掌握Linux启动时间的查看方法,给出一段Shell脚本用于查看计算时长,希望能帮助到需要的人。


数据运维技术 » 深入浅出:掌握Linux启动时间查看方法(linux启动时间查看)