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后表示系统到目前运行了多久时间。反过来推算系统重启时间

[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得到结果如下所示:

 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 }

测试结果如下所:

#查看系统安装时间

[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 (密码已被锁定。)

Linux下如何查看系统启动时间和运行时间以及安装时间的更多相关文章

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

    1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.002.查看/proc/uptime文件计算系 ...

  2. Linux下如何查看系统启动时间和运行时间(转)

    1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.查看/proc/uptime文件计算 ...

  3. [转载]linux下如何查看系统和内核版本

    原文地址:linux下如何查看系统和内核版本作者:vleage 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2 ...

  4. uptime命令查看系统启动时间和运行时间、查看linux系统负载

    1.uptime命令输出:16:11:40 up 59 days, 4:21, 2 users, load average: 0.00, 0.01, 0.00 2.查看/proc/uptime文件计算 ...

  5. linux 下如何查看和踢除正在登陆的其它用户 ==>Linux下用于查看系统当前登录用户信息的4种方法

    在linux系统中用pkill命令踢出在线登录用户 由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍 所以需要有时踢出指定的用户 1/#who   查出当前有那些终端登录(用 ...

  6. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  7. Linux下用于查看系统当前登录用户信息的4种方法

    1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事.该命令所使用的信息来源于/var/run/utmp文件.w命令输出的信息包括: 用户名称 用 ...

  8. linux下如何查看系统和内核版本

        1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@cro ...

  9. Linux下如何查看系统是多少位的

    在Linux命令行下输入  getconf LONG_BIT 命令

随机推荐

  1. Nginx ServerName指令

    L:47

  2. 如何从官网下载 Google Chrome 离线安装包

    1.打开 Chrome 浏览器主页:http://www.google.cn/chrome 2.地址栏最后的网址是这样的:http://www.google.cn/chrome/browser/des ...

  3. kubernetes-DNS解析很慢或者超时的问题

    DNS的解析结构: <service_name>.<namespace>.svc.<domain> myapp.default.svc.cluster.local ...

  4. mpvue——componets中引入vant-weapp组件

    前言 这个问题很奇葩,网上也有很多人,给了很多方法,但是我想说的是,那些方法我用了都没效果,我试了一些都没效果,因为我当时引入时报错说没有export default出来,但是一旦暴露出来就又出其他问 ...

  5. 如果固定电脑ip地址

    打开网络和共享中心 点击详细信息,即可看到IP地址.子网掩码.默认网关.DNS服务器信息 点击本WLAN状态->属性 找到Internet 协议版本 4(TCP/IPv4) 用鼠标左键单击两下 ...

  6. ZooKeeper-配置 zoo.cfg

    官方说明:https://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html#sc_configuration # 通信心跳数,Zookeeper ...

  7. django - 总结 - cnblog

    1.头像预览 -------方法1-------- 点击头像------>点击input img和input重合; img在label,input-->display:none $(&qu ...

  8. 五十一、进程间通信——System V IPC 之进程信号量

    51.1 进程信号量 51.1.1 信号量 本质上就是共享资源的数目,用来控制对共享资源的访问 用于进程间的互斥和同步 每种共享资源对应一个信号量,为了便于大量共享资源的操作引入了信号量集,可对所有信 ...

  9. SQLServer数据库文件由高版本向低版本转换

    这个只能用2012的生成脚本功能,在高级里面把脚本兼容设置成2008,并且选择生成架构和数据(默认是只有架构)拿这个脚本在2008上跑一次就行了 sqlserver 中使用sqlcmd 执行*.sql ...

  10. 迅为IMX6开发板真实产品案例分享-专为研发用芯选择

    迅为IMX6开发板: Android4.4系统 Linux + Qt5.7系统 Ubuntu12.04系统 部分真实案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容:IMX ...