Red*_*ket 3 linux bash shell-script uptime
我需要编写一个脚本来确定在安装 RPM 后是否发生了重新启动。很容易获得 RPM 安装时的纪元时间:rpm -q --queryformat "%{INSTALLTIME}\n" glibc | head -1
,它产生如下所示的输出:1423807455
。
此交叉检查与rpm -q --info
.
# date -d@`rpm -q --queryformat "%{INSTALLTIME}\n" glibc | head -1`
Fri Feb 13 01:04:15 EST 2015
# sudo rpm -q --info glibc | grep "Install Date" | head -1
Install Date: Fri 13 Feb 2015 01:04:15 AM EST Build Host: x86-022.build.eng.bos.redhat.com
Run Code Online (Sandbox Code Playgroud)
但是我很难弄清楚如何uptime
从cat /proc/uptime
. 我不明白,从输出cat /proc/uptime
这在我的系统是这样的:19496864.99 18606757.86
。为什么有两个值?我应该使用哪个,为什么这些数字中有小数?
更新:感谢techraf
这是我将使用的脚本...
#!/bin/sh
now=`date +'%s'`
rpm_install_date_epoch=`rpm -q --queryformat "%{INSTALLTIME}\n" glibc | head -1`
installed_seconds_ago=`expr $now - $rpm_install_date_epoch`
uptime_epoch=`cat /proc/uptime | cut -f1 -d'.'`
if [ $installed_seconds_ago -gt $uptime_epoch ]
then
echo "no need to reboot"
else
echo "need to reboot"
fi
Run Code Online (Sandbox Code Playgroud)
我很感激对脚本的任何反馈。
谢谢