加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux下如何查看系统启动时间和运行时间安装时间

发布时间:2020-12-14 02:00:57 所属栏目:Linux 来源:网络整理
导读:Linux下如何查看系统启动时间和运行时间以及安装时间 ? 1.uptime命令 输出:16:11:40 up 59 days,4:21,2 users,load average: 0.00,0.01,0.00 2.查看/proc/uptime文件计算系统启动时间 cat /proc/uptime 输出: 5113396.94 575949.85 第一数字即是系统已运行的

Linux下如何查看系统启动时间和运行时间以及安装时间

?

1.uptime命令
输出:16:11:40 up 59 days,4:21,2 users,load average: 0.00,0.01,0.00


2.查看/proc/uptime文件计算系统启动时间
cat /proc/uptime
输出: 5113396.94 575949.85
第一数字即是系统已运行的时间5113396.94 秒,运用系统工具date即可算出系统启动时间

代码:?
?
[[email?protected] ~] # date -d "$(awk -F. ‘{print $1}‘ /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2017-10-27 14:32:35

3.查看/proc/uptime文件计算系统运行时间

代码:?
?
[[email?protected] ~] # cat /proc/uptime| awk -F. ‘{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}‘
系统已运行:0天0时24分34秒

1:?who?命令查看

????? who -b 查看最后一次系统启动的时间。

?
1
2
[[email?protected] ~] # who -b
????????? system boot? 2017-10-27 14:32

????? who -r 查看当前系统运行时间

?
1
2
[[email?protected] ~] # who -r
????????? run-level 3? 2017-10-27 14:33

2: last? reboot

如下所示last reboot可以看到Linux系统历史启动的时间。 重启一下操作系统后,然后

[[email?protected] ~]# last reboot

?
1
2
3
4
[[email?protected] ~] # last reboot
reboot?? system boot? 3.10.0-327.el7.x Fri Oct 27 14:32 - 14:59? (00:26)???
?
wtmp begins Fri Oct 27 14:32:39 2017

#如果只需要查看最后一次Linux系统启动的时间

?
[[email?protected] ~] # last reboot | head -1
reboot
? system boot 2.6.9-42.ELsmp Thu May 29 15:25 (00:08)

3:TOP命令查看

??? 如下截图所示,up后表示系统到目前运行了多久时间。反过来推算系统重启时间

?
[[email?protected] ~] # who -b
????????? system boot? 2017-10-27 14:32
top - 15:00:29 up 27 min,? 2 users ,? load average: 0.00,0.05
Tasks:? 99 total,?? 1 running,? 98 sleeping,?? 0 stopped,?? 0 zombie
%Cpu(s):? 0.0 us,? 0.2 sy,? 0.0 ni,99.8 id ,? 0.0 wa,? 0.0 hi,? 0.0 si,? 0.0 st
KiB Mem :? 8176008 total,? 7892856 free ,?? 131764 used,?? 151388 buff /cache
KiB Swap:? 8257532 total,? 8257532 free ,??????? 0 used.? 7868548 avail Mem
?
?? PID USER????? PR? NI??? VIRT??? RES??? SHR S? %CPU %MEM???? TIME+ COMMAND????????????????????????????
? 1855 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.3? 0.0?? 0:00.33 kworker /0 :2????????????????????????
???? 1 root????? 20?? 0?? 44496?? 7168?? 2612 S?? 0.0? 0.1?? 0:02.32 systemd????????????????????????????
???? 2 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 kthreadd???????????????????????????
???? 3 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.05 ksoftirqd /0????????????????????????
???? 5 root?????? 0 -20?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 kworker /0 :0H???????????????????????
???? 6 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.03 kworker /u4 :0???????????????????????
???? 7 root????? rt?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.06 migration /0????????????????????????
???? 8 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 rcu_bh?????????????????????????????
???? 9 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 rcuob /0????????????????????????????
??? 10 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 rcuob /1????????????????????????????
??? 11 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.33 rcu_sched??????????????????????????
??? 12 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.12 rcuos /0????????????????????????????
??? 13 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.37 rcuos /1????????????????????????????
??? 14 root????? rt?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.01 watchdog /0?????????????????????????
??? 15 root????? rt?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 watchdog /1?????????????????????????
??? 16 root????? rt?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.08 migration /1????????????????????????
??? 17 root????? 20?? 0?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 ksoftirqd /1????????????????????????
??? 19 root?????? 0 -20?????? 0????? 0????? 0 S?? 0.0? 0.0?? 0:00.00 kworker /1 :0H?????????  

4: w命令查看

如下截图所示,up后表示系统到目前运行了多久时间。反过来推算系统重启时间

?
1
2
3
4
5
[[email?protected] ~] # w
? 15:00:56 up 28 min,0.05
USER???? TTY????? FROM???????????? [email?protected]?? IDLE?? JCPU?? PCPU WHAT
root???? tty1????????????????????? 14:33?? 25:52?? 0.07s? 0.07s - bash
root???? pts /0??? 10.0.100.55????? 14:37??? 0.00s? 0.10s? 0.00s w

5:uptime 命令查看

?
[[email?protected] ~] # uptime
? 15:01:40 up 29 min,0.05

6: 查看/proc/uptime

方法一:

?
[[email?protected] ~] # cat /proc/uptime
1778.05 3520.28

方法二:

?
[[email?protected] ~] # date -d "`cut -f1 -d. /proc/uptime` seconds ago"
Fri Oct 27 14:32:35 CST 2017

?方法三:

?
[[email?protected] ~] # date -d "$(awk -F. ‘{print $1}‘ /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2017-10-27 14:32:35

?

1、前言

  时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间戳。应用层有time、getdaytime等函数。

在应用程序获取系统的启动时间,通过sysinfo中的uptime可以计算出系统的启动时间。

2、sysinfo结构

  sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间、共享内存空间、进程的数目等。man?sysinfo得到结果如下所示:

 1 struct sysinfo {
 2                long uptime;             /* Seconds since boot */
 3                unsigned long loads[3];  /* 1,5,and 15 minute load averages */
 4                unsigned long totalram;  /* Total usable main memory size */
 5                unsigned long freeram;   /* Available memory size */
 6                unsigned long sharedram; /* Amount of shared memory */
 7                unsigned long bufferram; /* Memory used by buffers */
 8                unsigned long totalswap; /* Total swap space size */
 9                unsigned long freeswap;  /* swap space still available */
10                unsigned short procs;    /* Number of current processes */
11                char _f[22];             /* Pads structure to 64 bytes */
12            };

3、获取系统启动时间

  通过sysinfo获取系统启动到现在的秒数,用当前时间减去这个秒数即系统的启动时间。程序如下所示:

 1 #include <stdio.h>
 2 #include <sys/sysinfo.h>
 3 #include <time.h>
 4 #include <errno.h>
 5 
 6 static int print_system_boot_time()
 7 {
 8     struct sysinfo info;
 9     time_t cur_time = 0;
10     time_t boot_time = 0;
11     struct tm *ptm = NULL;
12     if (sysinfo(&info)) {
13     fprintf(stderr,"Failed to get sysinfo,errno:%u,reason:%sn",14         errno,strerror(errno));
15     return -1;
16     }
17     time(&cur_time);
18     if (cur_time > info.uptime) {
19     boot_time = cur_time - info.uptime;
20     }
21     else {
22     boot_time = info.uptime - cur_time;
23     }
24     ptm = gmtime(&boot_time);
25     printf("System boot time: %d-%-d-%d %d:%d:%dn",ptm->tm_year + 1900,26         ptm->tm_mon + 1,ptm->tm_mday,ptm->tm_hour,ptm->tm_min,ptm->tm_sec);
27    return 0; 
28 }
29 
30 int main()
31 {
32     if (print_system_boot_time() != 0) {
33     return -1;
34     }
35     return 0;
36 }

测试结果如下所:

?

#查看系统安装时间

[[email?protected] ~]# tune2fs -l /dev/sda1 | grep create
Filesystem created: Tue Aug 15 16:52:06 2017

?

#通过查看系统创建账号时间来判断系统安装日期

?
[[email?protected] ~] # passwd -S zabbix
zabbix LK 2017-06-28 -1 -1 -1 -1 (密码已被锁定。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读