系统性能信息模块psutil
psutil(puthon system and process utilities),是系统监控及进程管理的且跨平台的系统管理库,实现命令行中类似ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop等等命令的功能
psutil官方文档:https://pythonhosted.org/psutil/
psutil支持的操作系统有:linux系统、Windows系统、Mac系统
获取系统性能信息
psutil系统性能信息
CPU信息:
1、CPU利用率:User Time、System Time、Wait Time、idle
2、CPU硬件信息:物理CPU个数、逻辑CPU个数=物理CPU个数*核数
运行结果:
Memory信息:
1、内存利用率:Total、Used、Free、Buffers缓冲(写)、Cache缓存
2、内存Memory
3、Swap交换分区
运行结果:
Disk和Network信息:
1、磁盘利用率:disk_partitlons、disk_usage
2、磁盘IO信息:disk_io_counters
3、网络IO信息:net_to_counters
运行结果:
实例化PrettyTable类
运行结果:
其他信息:
1、用户登录:users
2、开机时间:boot_time
运行结果:
linux与windows服务器监控
代码:
import psutil
import time
import os
import platform
from datetime import datetime
try:
import os
os_uname = os.uname()
except Exception as e:
import platform
os_uname = platform.uname()
now_time = datetime.now()
print(now_time)
boot_time = datetime.fromtimestamp(psutil.boot_time())
print(boot_time)
run_time = now_time - boot_time
hour,minute,second = str(run_time).split(':')
print(os_uname)
print("""
Windows 服务器监控
主机名:%s
系统名称:%s
发行版本号:%s
内核版本:%s
系统架构:%s
现在时间:%s
开机时间:%s
运行时间:%s小时%s分%s秒
"""%(os_uname.node,os_uname.system,os_uname.release,os_uname.version,os_uname.machine,now_time,boot_time,hour,minute,second))
运行结果:
Flask
1、官方网址:https://dormousehole.readthedocs.io/en/latest
2、HTML
3、Bootstrap(封装好的前端框架)
运行结果:
运行结果:
html
在templates中创建html文件
<html lang="en">
与</html>
中的内容是页面信息(所有的html代码)分为head和body两个部分
HTML 表格
表格由 <table>
标签来定义。每个表格均有若干行(由 <tr>
标签定义),每行被分割为若干单元格(由 <td>
标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。
运行结果:
Bootstrap
运行结果:
render_template
代码:
from flask import Flask,render_template
from datetime import datetime
import psutil
import time
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/hostinfo/')
def login():
try:
import os
os_uname = os.uname()
except Exception as e:
import platform
os_uname = platform.uname()
now_time = datetime.now()
print(now_time)
boot_time = datetime.fromtimestamp(psutil.boot_time())
print(boot_time)
run_time = now_time - boot_time
hour, minute, second = str(run_time).split(':')
return render_template("login.html",system = os_uname.system,boot_time=boot_time,run_time=run_time,now_time=now_time)
if __name__ == '__main__':
app.run()``
运行结果:
文件差异性对比difflib模块
代码:
import difflib
with open('passwd') as f:
text1 = f.readlines()
with open('passwd.bak') as f:
text2 = f.readlines()
d = difflib.HtmlDiff()
result = d.make_file(text1,text2)
with open('result.html','w') as f:
f.write(result)
print("文件差异性对比成功")
运行结果: