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

2023-11-06

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

 

 

 

 下面的是程序的方式 ,在程序开发的时候会比较有用。摘自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 }

测试结果如下所:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下如何查看系统启动时间和运行时间 的相关文章

随机推荐

  • RSA的数学运算步骤

    原创文章 绝非抄袭 叙述一下我学了很久的一个RSA公钥加密 很多地方在用的一种安全的加密方法 以前只知道那种老式电报的加密 两边各拿一个对照表 什么数字对什么字 倒是很好理解 算是对称加密 在学校的时候就讨论过很长时间的公钥加密 一直理解不
  • Huffman-哈夫曼编码算法详解

    1 概述 背景 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法 其压缩率通常在20 90 之间 哈夫曼编码算法用字符在文件中出现的频率表来建立一 个用0 1串表示各字符的最优表示方式 给出现频率高的字符较短的编码 出现频率较低的字符
  • Linux系统之ifconfig命令的基本使用

    Linux系统之ifconfig命令的基本使用 一 ifconfig命令介绍 1 ifconfig简介 2 ifconfig注意事项 3 ifconfig命令特点 二 ifconfig命令的使用方法 1 查看ifconfig的帮助信息 2
  • LeetCode 之 剑指 Offer 11. 旋转数组的最小数字(Java)

    文章目录 LeetCode 之 剑指 Offer 11 旋转数组的最小数字 Java 一 题目 二 解题思路 三 代码 LeetCode 之 剑指 Offer 11 旋转数组的最小数字 Java 一 题目 剑指 Offer 11 旋转数组的
  • 机器视觉之霍夫变换提取直线

    机器视觉之霍夫变换提取直线 import cv2 as cv import numpy as np img cv imread home local EUROPRO guoliang wang OpenCV opencv samples d
  • 使用Visual Studio Profiler分析程序性能

    Profiler 是 Visual Studio 中集成的性能分析工具 它主要用于分析程序中所有函数调用所占的耗费时间 它提供了Sample和Instrumentation两种检测方式 能够生成简洁易读的报告 它只适用于Team Suit版
  • 怎样修改linux时区

    怎样修改linux时区 如果你的 Linux 系统时区配置不正确 必需要手动调整到正确的当地时区 NTP 对时间的同步处理只计算当地时间与 UTC 时间的偏移量 因此配置一个 NTP 对时间进行同步并不能解决时区不正确的问题 所以大家在用了
  • vue项目,ie11 浏览器报 Promise 未定义的错误

    报错 description Promise 未定义 message Promise 未定义 name ReferenceEr number 2146823279 stack ReferenceEr 解决办法 1 npm install b
  • AIDL实现跨APP通信(双向通信)

    某天 接到了一人任务要在两个app互相传递一些消息 上网查了以后发现有几种方式 第一是广播 第二是AIDL 由于初出茅庐全不会就选择了AIDL 下面简单粗暴的开始贴代码好了 也是得到了网上的一些借鉴 若有雷同 嗯你懂的 1 我们需要先建立A
  • SVN出现:原始内容“XXXX“不存在

    缘由 偶然一次在工作期间 策划的svn出现了 原始内容 XXXX 不存在 的提示 无论是用清理 还是还原都无效 由于是第一次遇到所以记录一下解决过程 分析 从提示上看大致可知是某个文件不存在了 估计是异常操作svn导致一些文件丢失 据网上资
  • Python中的for循环

    Python中的for循环 在Python编程语言中 for循环是一种常用的迭代结构 用于遍历可迭代对象 iterable 它允许我们按照指定的方式重复执行一系列操作 直到满足退出条件 在本文中 我们将详细介绍for循环的使用方式 并提供相
  • 快速排序的优化及其与qsort的比较

    快速排序是用的最多的一种排序方法 编程珠玑 在第十一章 排序 中讨论了快速排序的几个版本 其实版本的不同 都是体现在partition函数上 partition版本1 其实就是 算法导论 给出的版本 很好理解 int partition1
  • 在main函数实现两个数的输入并用函数实现两个数的值相换(两种方法实现)

    在main函数实现两个数的输入并用函数实现两个数的值相换 1 方法一 void f int x int y 定义 声明函数 int t 临时变量 t x x y y t 关于汉诺塔这个是最简单的算法 include
  • python lambda函数排序_python笔记-lambda函数、sorted函数、map函数

    1 lambda函数 又称匿名函数 示例如下 def f x return x 2 print f 4 16 g lambda x x 2 print g 4 16 2 map函数 print map lambda x x 2 range
  • 分布式任务调度(XXL-JOB)

    什么是分布式任务调度 任务调度顾名思义 就是对任务的调度 它是指系统为了完成特定业务 基于给定时间点 给定时间间隔或者给定执行次数自动执行任务 通常任务调度的程序是集成在应用中的 比如 优惠卷服务中包括了定时发放优惠卷的的调度程序 结算服务
  • 减小android button的大小

    当我们仅需要按钮的大小恰当包裹其中文本的大小 尽可能减小多余的空白空间 第一种方式 我们可以直接设置button属性 minHeight和minWidth android minHeight 0dp android minWidth 0dp
  • 工业通信网络结构

    工业通信网络结构 工业通信网络包含所谓的工业现场总线 局域网 公网等概念 这些概念在物理环境下并不是界线分明的 是一种主观上的分类 在物理环境下 目前工业网络结构都是设备与双绞线之间的通信 可以互相通信的设备与双绞线的集合称为网络 当网络中
  • 【深度学习常见问题——Attention基础知识梳理】

    这里写目录标题 1 注意力机制计算 2 d k sqrt d k dk
  • Unity 编辑器ScrollView滚动卡顿优化

    原因 在使用 Unity 开发游戏的时候 经常会需要用到数据配置 方式可能是CSV JSON等等 为了可以方便地查看修改数据 通常使用ScrollView实现在 Unity 编辑器里面以列表的形式查看数据 当数据量大的时候 滚动视图会发现卡
  • Linux下如何查看系统启动时间和运行时间

    1 uptime命令输出 16 11 40 up 59 days 4 21 2 users load average 0 00 0 01 0 002 查看 proc uptime文件计算系统启动时间cat proc uptime输出 511