实验前的操作见上一篇
需要加载一个模块render_template,新建文件夹templates用于存放网页文件,和框架在平行位置,别建错了,否则要写绝对路径
执行结果:
index.html内容
系统信息的监控
需要加载psutil模块
psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统,
pip install psutil 之前安装python-devel.x86_64 0:2.7.5-34.el7 和gcc
import re
import os
from flask import Flask
from flask import render_template
import psutil
from datetime import datetime
app = Flask(__name__)
@app.route('/')
def fun():
info= os.uname()
boot_time=datetime.fromtimestamp(psutil.boot_time())
boot_time_format=boot_time.strftime('%Y-%m-%d %X')
now_time=datetime.now()
now_time_format=now_time.strftime('%Y-%m-%d %X')
boot_days=(now_time-boot_time).days
boot_str=str(now_time-boot_time)
up_time=re.split(':|\.',boot_str)
up_time_format="%s Day %s Hour %s Minute %s Second" %(
boot_days,up_time[0],up_time[1],up_time[2])
username= psutil.users()[0][0]
return render_template('watch.html',
info = info,
boot_time_format=boot_time_format,
now_time_format=now_time_format,
up_time_format=up_time_format,
username=username,
)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=9996)
watch.html内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>显示系统信息</h1>
<hr>
<table border="2">
<tr>
<td>系统名</td>
<td>{{ info[0]}}</td>
</tr>
<tr>
<td>主机名</td>
<td>{{ info[1]}}</td>
</tr>
<tr>
<td>内核版本</td>
<td>{{ info[2]}}</td>
</tr>
<tr>
<td>硬件架构</td>
<td>{{ info[-1]}}</td>
</tr>
<tr>
<td>开机时间</td>
<td>{{ boot_time_format }}</td>
</tr>
<tr>
<td>当前时间</td>
<td>{{ now_time_format }}</td>
</tr>
<tr>
<td>运行时间</td>
<td>{{ up_time_format }}</td>
</tr>
<tr>
<td>用户</td>
<td>{{ username }}</td>
</tr>
</table>
</body>
</html>
运行run.py