📜  使用Python获取操作系统启动后的时间(1)

📅  最后修改于: 2023-12-03 15:22:20.639000             🧑  作者: Mango

使用Python获取操作系统启动后的时间

在编写系统管理、监控等工具时,获取操作系统启动后的时间是一个常见的需求。Python提供了一些现有的模块和方法,可以非常方便地获取这个信息。

方式一:通过psutil模块获取系统启动时间

psutil 是一个跨平台的系统信息库,可以用来获取系统资源占用、进程信息、磁盘信息等方面的内容。其中,它提供了 Boot_time() 方法,可以获取系统启动时间。这个时间是一个 Unix 时间戳,我们需要将其转换为日期格式。

代码如下:

import psutil
import datetime

boot_time_timestamp = psutil.boot_time()
bt = datetime.datetime.fromtimestamp(boot_time_timestamp)
print("系统启动时间:", bt.strftime("%Y-%m-%d %H:%M:%S"))

运行上述代码,输出格式如下:

系统启动时间: 2022-02-19 14:13:19
方式二:通过proc文件系统获取系统启动时间

类 Unix 系统上,proc 文件系统是一个伪文件系统,它提供了关于进程和系统状态的信息。在 /proc 目录下,有一个名为 uptime 的文件,其中包含了系统运行时间的信息。

代码如下:

with open('/proc/uptime', 'r') as f:
    uptime_seconds = float(f.readline().split()[0])
    bt = datetime.datetime.now() - datetime.timedelta(seconds=uptime_seconds)
    print("系统启动时间:", bt.strftime("%Y-%m-%d %H:%M:%S"))

运行上述代码,输出格式如下:

系统启动时间: 2022-02-19 14:13:19
总结

以上两种方式在 Unix 类系统上都可以使用,适用于任何使用 Python 的开发者。值得注意的是,第一种方式需要安装 psutil 模块,可以通过 pip install psutil 命令进行安装。在 Windows 上,psutil 的 Boot_time() 方法并不能返回正确的启动时间。