ICE.ICE|

韩憨

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

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

https://blog.csdn.net/luo200618/article/details/54133172

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

代码:  

全选

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"


输出: 2008-11-09 11:50:31

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

代码:  

全选

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)}'


输出:系统已运行:59天4时13分9秒

 

 

下面的摘自 http://www.cnblogs.com/kerrycode/p/3759395.html 

1: who 命令查看

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

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

[root@DB-Server ~]# who -b

         system boot May 11 09:27

clipboard

clipboard[1]

 

2: last  reboot

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

[root@DB-Server ~]# last reboot

reboot

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

 

reboot system boot 2.6.9-42.ELsmp Sun May 11 09:27 (18+05:55)

 

wtmp begins Mon May 5 16:18:57 2014

 

clipboard[2]

 

如果只需要查看最后一次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后表示系统到目前运行了多久时间。反过来推算系统重启时间

 

clipboard[3]4:w  命令查看

 

 

 

4: w命令查看

 

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

 

 

5:uptime 命令查看

 

clipboard[5]

 

 

 

6: 查看/proc/uptime

 

[root@DB-Server ~]# cat /proc/uptime

 

1415.59 1401.42

 

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

 

Thu May 29 15:24:57 CST 2014

 

[root@DB-Server ~]# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" 

 
2014-05-29 15:24:57

 

clipboard[6]

 

 

 下面的是程序的方式 ,在程序开发的时候会比较有用。摘自http://www.cnblogs.com/Anker/p/3527609.html

 

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:%s\n",
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:%d\n", 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 }
复制代码
复制代码
复制代码

测试结果如下所:

本文作者:韩憨

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

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

posted @   韩憨  阅读(558)  评论(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.

寄 没有地址的信

这样的情绪 有种距离

你 放着谁的歌曲

你 放着谁的歌曲

是怎样的心情

能不能说给我听

雨 下得好安静

是不是你偷偷在哭泣

幸福 真的不容易

在你的背景 有我爱你~

我可以 陪你去看星星

不用再多说明

我就要和你在一起

我不想 又再一次和你分离

我多么想每一次的美丽

是因为你

寄 没有地址的信

寄 没有地址的信

这样的情绪 有种距离

你 放着谁的歌曲

是怎样的心情

能不能说给我听

雨 下得好安静

是不是你偷偷在哭泣

幸福 它真的不容易

在你的背景 有我爱你~

我可以 陪你去看星星

不用再多说明

我就要和你在一起

我不想 又再一次和你分离

我多么想每一次的美丽

是因为你

我可以 陪你去看星星

我可以 陪你去看星星

不用再多说明

我就要和你在一起

我不想 又再一次和你分离

我多么想每一次的美丽

是因为你

He...

He...

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