1. >>> import psutil
  2. >>> login_user_num=len(psutil.users())
  3. # 获取当前系统的登录用户数
  4. >>> print(login_user_num)
  5. 4

获取cpu数据的函数

  1. import psutil
  2. # 获取cpu数据的函数
  3. def get_cpu():
  4. # cpu数量
  5. cpu_count = len(psutil.Process().cpu_affinity())
  6. # 每颗cpu的物理核心数
  7. cpu_py_count = psutil.cpu_count(logical=False)
  8. # cpu信息
  9. cpu_info = psutil.cpu_times_percent(interval=0.1) #每0.1s刷新一次
  10. return cpu_count,cpu_py_count,cpu_info
  11. cpu = get_cpu()
  12. print(cpu)


获取cpu数据的函数

打印CPU数据函数

  1. import psutil
  2. # 获取cpu数据的函数
  3. def get_cpu():
  4. # cpu数量
  5. cpu_count = len(psutil.Process().cpu_affinity())
  6. # 每颗cpu的物理核心数
  7. cpu_py_count = psutil.cpu_count(logical=False)
  8. # cpu信息
  9. cpu_info = psutil.cpu_times_percent(interval=0.1)
  10. return cpu_count,cpu_py_count,cpu_info
  11. # cpu = get_cpu()
  12. # print(cpu)
  13. # 打印cpu信息
  14. def dispaly_cpu():
  15. cpu_template = """
  16. ===========================CPU信息==============================
  17. CPU颗数:{cpu_count}
  18. CPU总使用率:{cpu_time}
  19. CPU物理核心数:{cpu_py_count}
  20. IO等待CPU空闲率: {io_wait_time}
  21. """
  22. cpu_count, cpu_py_count,cpu_info=get_cpu()
  23. import sys
  24. plf = sys.platform
  25. print(cpu_template.format(
  26. cpu_count=cpu_count,
  27. cpu_py_count=cpu_py_count,
  28. cpu_time=cpu_info.user + cpu_info.system,
  29. io_wait_time=cpu_info.iowait
  30. ))
  31. dispaly_cpu()

打印内存数据函数

关于物理内存和交换内存之间的关系。
物理内存:就是实际的内存条提供的临时数据存储空间,在 Windows 上右键点击计算机,再点击属性时,上面显示的安装内存(RAM)就是电脑的物理内存。这些内存是实际存在的,在你不给机器增加内存条的时候是不会改变的。
交换内存:交换内存是专门用来临时存储数据的,通常在页面调度和交换进程数据时使用。相当于在进行内存整理的时候,会先把部分数据放在硬盘的某个地方,类似我们整理衣柜,衣服一多直接整理会很麻烦,因此会先把部分衣服放在其他地方,等衣柜里的衣服整理完了再把放在其它地方的衣服拿回来。这个其他地方放在计算机中则代表硬盘的某个地方,也就是我们所说的交换区。通常当使用交换内存时,是因为物理内存不足,正所谓衣柜,如果足够大的话就没必要拿出部分衣服放在其它地方, 直接在衣柜里就能解决了。
虚拟内存:首先,如果想要操作文件,可执行程序等等,那么首先要把它们从磁盘上读取到内存中,因此 CPU 除了自己的那一部分小小的空间外,要想操作数据,只能操作内存里的数据。但是当内存不够了,那么便会在硬盘上开辟一份虚拟内存,将物理内存里的部分数据放在虚拟内存当中。硬盘的空间很大,即使普通电脑安装的固态硬盘也有一百个 G,因此可以拿出一部分充当虚拟内存。不过虚拟内存虽说是内存,但毕竟在硬盘上,速度绝对和 CPU 直接从物理内存里读取数据的速度相差甚远。这也是为什么那些大型网站将经常被访问的一些数据放在 Redis 缓存里,而不是放在硬盘或者数据库上。

  1. import psutil
  2. # 查看内存使用情况
  3. print(psutil.virtual_memory())
  4. """
  5. 注释:
  6. total: 总内存
  7. available: 可用内存
  8. percent: 内存使用率
  9. used: 已使用的内存
  10. """

CPU

  1. import psutil
  2. # 查看虚拟内存使用情况
  3. print(psutil.swap_memory())

查看虚拟内存使用情况

  1. import psutil
  2. # print(psutil.virtual_memory())
  3. # print(psutil.swap_memory())
  4. """
  5. 注释:
  6. total: 总内存
  7. available: 可用内存
  8. percent: 内存使用率
  9. used: 已使用的内存
  10. """
  11. def get_memory():
  12. mem_total = psutil.virtual_memory().total
  13. mem_available = psutil.virtual_memory().available
  14. mem_percent = psutil.virtual_memory().percent
  15. mem_used = psutil.virtual_memory().used
  16. mem_free = psutil.virtual_memory().free
  17. return mem_total,mem_available,mem_percent,mem_used,mem_free
  18. # aaa = get_memory()
  19. # print(aaa)
  20. def out_memory():
  21. mem_template="""
  22. ******内存信息******
  23. 总内存: {mem_total}
  24. 可用内存:{mem_available}
  25. 内存已使用百分比:{mem_percent}
  26. 已用内存: {mem_used}
  27. 空闲内存:{mem_free}
  28. """
  29. import sys
  30. mem_total,mem_available,mem_percent,mem_used,mem_free = get_memory()
  31. print(mem_template.format(mem_total=mem_total,
  32. mem_available=mem_available,
  33. mem_percent=mem_percent,
  34. mem_used=mem_used,
  35. mem_free=mem_free))
  36. out_memory()


psutil

一键配置Linux主机Yum源

  1. import sys
  2. import platform
  3. import subprocess
  4. while True:
  5. print('''
  6. ***********工具**********
  7. *********请选择序号*******
  8. 1.自动配置Yum源
  9. 2.按q键退出
  10. ''')
  11. # print(platform.platform()) #获取系统版本
  12. version = platform.platform()
  13. num = int(input("请输入选项:"))
  14. if num == 1:
  15. if "el7" in version:
  16. subprocess.getoutput('curl -o /etc/yum.repos.d/CentOS7-Base-aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo'))
  17. break
  18. if "el7" in version:
  19. subprocess.getoutput('curl -o /etc/yum.repos.d/CentOS7-Base-aliyun.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo')
  20. break
  21. elif num == 5:
  22. break