ICE.ICE|

韩憨

园龄:4年7个月粉丝:42关注:47

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即可算出系统启动时间

代码

[root@localhost ~]# 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文件计算系统运行时间

代码

[root@localhost ~]# 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 查看最后一次系统启动的时间。

 

 

[root@localhost ~]# who -b

         system boot  2017-10-27 14:32

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

 

 

[root@localhost ~]# who -r

         run-level 3  2017-10-27 14:33

2: last  reboot

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

[root@DB-Server ~]# last reboot

 

 

 

 

[root@localhost ~]# 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系统启动的时间

[root@DB-Server ~]# last reboot | head -1

reboot

 system boot 2.6.9-42.ELsmp Thu May 29 15:25 (00:08)

3:TOP命令查看

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

[root@localhost ~]# who -b

         system boot  2017-10-27 14:32

top - 15:00:29 up 27 min,  2 users,  load average: 0.00, 0.01, 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

[root@localhost ~]# w

 15:00:56 up 28 min,  2 users,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             LOGIN@   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 命令查看

[root@localhost ~]# uptime

 15:01:40 up 29 min,  2 users,  load average: 0.00, 0.01, 0.05

6: 查看/proc/uptime

方法一:

[root@localhost ~]# cat /proc/uptime

1778.05 3520.28

方法二:

[root@localhost ~]# date -d "`cut -f1 -d. /proc/uptime` seconds ago"

Fri Oct 27 14:32:35 CST 2017

 方法三:

[root@localhost ~]# 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得到结果如下所示:

 struct sysinfo {

                long uptime;             /* Seconds since boot */

                unsigned long loads[3];  /* 1, 5, and 15 minute load averages */

                unsigned long totalram;  /* Total usable main memory size */

                unsigned long freeram;   /* Available memory size */

                unsigned long sharedram; /* Amount of shared memory */

                unsigned long bufferram; /* Memory used by buffers */

                unsigned long totalswap; /* Total swap space size */

                unsigned long freeswap;  /* swap space still available */

                unsigned short procs;    /* Number of current processes */

                char _f[22];             /* Pads structure to 64 bytes */

            };

3、获取系统启动时间

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

  #include <stdio.h>

  #include <sys/sysinfo.h>

  #include <time.h>

  #include <errno.h>

 

  static int print_system_boot_time()

  {

      struct sysinfo info;

      time_t cur_time = 0;

      time_t boot_time = 0;

      struct tm *ptm = NULL;

      if (sysinfo(&info)) {

      fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n",

         errno, strerror(errno));

       return -1;

      }

     time(&cur_time);

     if (cur_time > info.uptime) {

      boot_time = cur_time - info.uptime;

      }

      else {

      boot_time = info.uptime - cur_time;

      }

      ptm = gmtime(&boot_time);

      printf("System boot time: %d-%-d-%d %d:%d:%d\n", ptm->tm_year + 1900,

      ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);

     return 0;

  }

 

  int main()

  {

      if (print_system_boot_time() != 0) {

      return -1;

      }

      return 0;

  }

 

测试结果如下所:

 

#查看系统安装时间

[root@control1 ~]# tune2fs -l /dev/sda1 | grep create
Filesystem created: Tue Aug 15 16:52:06 2017

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

[root@zabbix-server ~]# passwd -S zabbix

zabbix LK 2017-06-28 -1 -1 -1 -1 (密码已被锁定。)

 

 

 

本文作者:韩憨

本文链接:https://www.cnblogs.com/hanby/p/14148904.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   韩憨  阅读(235)  评论(0编辑  收藏  举报
//看板娘

剑桥

评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 隔离 (Studio Live Duet) 陈凯咏,林家谦
  2. 2 明知做戏 吴雨霏
  3. 3 残酷游戏 卫兰
  4. 4 你,好不好? 周兴哲
  5. 5 我可以 蔡旻佑
  6. 6 云烟成雨 房东的猫
  7. 7 说散就散 JC 陈咏桐
  8. 8 我配不上你 夏天Alex
  9. 9 不再联系 夏天Alex
  10. 10 等我先说 夏天Alex
  11. 11 我知道他爱你 夏天Alex
  12. 12 多想在平庸的生活拥抱你 隔壁老樊
  13. 13 这一生关于你的风景 隔壁老樊
  14. 14 我曾 隔壁老樊
  15. 15 关于孤独我想说的话 隔壁老樊
  16. 16 过客 周思涵
  17. 17 备爱 周思涵
  18. 18 嚣张 en
  19. 19 海口 后弦
明知做戏 - 吴雨霏
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : Xia Zhi

作曲 : Fong Man Leung

编曲 : 吴国恩

监制 : Gary Chan

等你的汽水喝一半给你加片薄冰

等你的桌面满泻我总会打理重整

不想纯情 不够聪明

你未发现我的身影

得我帮你依照编码整理家里电影

得我帮你依照编码整理家里电影

只会得我一个帮你选购喜爱铃声

天天如常 估你心情

等一个眼神求证 一闪擦过如流星

怎么我为我做过的感到惊怕

就像爱吗我也不肯定恐怕

我以为存在吗 千变万化

从来不肯开口可相信吗 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你毫无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

即使你未太在意不感到惊讶

即使你未太在意不感到惊讶

现在要说爱你请准备招架

勇气还存在吗 不要害怕

随时真的胆敢亲手送花 离谱吗

请你不要阻我喜欢你

明明是爱但你未说话你扮作闪避

这个沉默冷静的你亳无办法处理

其实我亦怕是错摸心理

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过仍然害羞的你

还是顾忌太不争气 明知做戏

不过不要阻我紧张你

如何令你愉快让我办妥为你准备

喜爱沉默冷静的你还是自信的你

仍愿意为你造一些惊喜

总有天会等到好天气

游行示爱大叫着你在某大片草地

等你无用退避不过途人目光不理

期待贴着你的手臂 无须做戏

等你喜爱等你不爱就凭摘毫验证

等你喜爱等你不爱就凭摘毫验证

想爱不爱偏爱不理亦同样难划清

天天如常 估你心情

不想扑索来求证 争取过趁还年青

终于你下决定来答应 太动听

点击右上角即可分享
微信分享提示