python编程快速上手(持续更新中…)
psutil简介
该模块提供了一些方法可以用来做系统监控,性能分析和进程管理等。它目前可以支持Linux,Windows,OSX,Sun Solaris,FreeBSD等系统。
psutil三方模块,可实现top,isof,netstat,ipconfig,who,kill,free,nice,^
psutil安装(windows python控台)
linux:安装
1、进入安装目录:python/script cmd
pip3 install psutil 国外慢,需安装国内
pip3 install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple
2、psutil版本查看
python3
import psutil
psutil.version_info
3、Pycharm中安装第三方库 psutil(windows)
常见功能
# 导入psutil
import psutil
from datetime import date
# 获取cpu信息
print('获取cpu信息')
# ### 获取cpu核数
print(psutil.cpu_count()) # 8
# ### 获取cpu核数(物理)
print(psutil.cpu_count(logical=False)) # 4
# ### 使使用率
# print(psutil.cpu_percent())
# ### 使使用率(刷新时间间隔:0.5)
print(psutil.cpu_percent(interval=0.5))
# ### 使使用率(刷新时间间隔:0.5) 每一核
print(psutil.cpu_percent(interval=0.5, percpu=True))
# 获取内存信息
print('获取内存信息')
# ### 内存的整体信息
print(psutil.virtual_memory())
# ### 内存使用率
print(psutil.virtual_memory().total)
print(psutil.virtual_memory().percent)
# 获取硬盘信息
print('获取硬盘信息')
# ### 获取硬盘分区信息
print(psutil.disk_partitions())
# ### 获取指定硬盘分区信息
print(psutil.disk_usage("C:\\")) # linux / 根目录
# ### 获取硬盘使用率
print(psutil.disk_usage("C:\\").percent) # linux / 根目录
# 获取网络信息
print('获取网络信息')
# ### 获取收到的数据包数量
print(psutil.net_io_counters().bytes_recv)
# ### 获取发送的数据包数量
print(psutil.net_io_counters().bytes_sent)
# 获取开机时间
print(psutil.boot_time()) # 1970年到现在秒数
# 格式化时间
print(date.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S')) # 1970年到现在秒数
系统性能定时监控(案例)
效果
# 导入psutil
import psutil
import datetime
# 2、定义变量保存CPU的使用率
cpu_per = psutil.cpu_percent(interval=0.5)
# 3、定义变量保存内存信息
memory_info = psutil.virtual_memory()
# 4、定义变量保存硬盘的信息
disk_info = psutil.disk_usage("C:\\")
# 5、定义变量保存网络的信息
net_info = psutil.net_io_counters()
# 获取系统当前时间
current_time = datetime.datetime.now().strftime("%F %T")
# 6、拼接字符串显示
log_str = "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "| 监控时间 | CPU使用率 | 内存使用率 | 硬盘使用率 | 网络收发量 |\n"
log_str += "| | (共%d核CPU) | (总计%dG内存) | (总计%dG硬盘)| |\n" % (psutil.cpu_count(logical=False), memory_info.total/1024/1024/1024, disk_info.total/1024/1024/1024)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "|%s| %s%% | %s%% | %s%% | 收:%s/发:%s |\n" % (current_time, cpu_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
print(log_str)
# 7、保存监控信息到日志文件
f = open("log.txt", "a")
f.write(log_str + "\n\n")
f.close()
系统性能定时监控(升级)
# 导入psutil
# 循环,每隔一段时间进行一次
import psutil
import datetime
# 定义了linux_monitor() 实现监控
def linux_monitor(time):
# 2、定义变量保存CPU的使用率
# 每隔5秒
cpu_per = psutil.cpu_percent(interval=time)
# 3、定义变量保存内存信息
memory_info = psutil.virtual_memory()
# 4、定义变量保存硬盘的信息
disk_info = psutil.disk_usage("C:\\")
# 5、定义变量保存网络的信息
net_info = psutil.net_io_counters()
# 获取系统当前时间
current_time = datetime.datetime.now().strftime("%F %T")
# 6、拼接字符串显示
log_str = "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "| 监控时间 | CPU使用率 | 内存使用率 | 硬盘使用率 | 网络收发量 |\n"
log_str += "| | (共%d核CPU) | (总计%dG内存) | (总计%dG硬盘)| |\n" % (
psutil.cpu_count(logical=False), memory_info.total / 1024 / 1024 / 1024, disk_info.total / 1024 / 1024 / 1024)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "|%s| %s%% | %s%% | %s%% | 收:%s/发:%s |\n" % (
current_time, cpu_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
print(log_str)
# 7、保存监控信息到日志文件
f = open("log.txt", "a")
f.write(log_str + "\n\n")
f.close()
# main() 启动定时监控
def main():
"""程序的入口"""
while True:
linux_monitor(5)
# 启动
if __name__ == '__main__':
main()
系统性能定时监控(终端运行)
第一步,文件增加 可执行权限 chmod u+x xxxx.py
第二步,告诉终端代码使用 python解释器执行
#!/home/demo/bin/python3
第三步, 进入虚拟环境运行
workon 1-basics-python3
第四步,./xxxx.py