python3.6.7安装脚本
baim0手撸版
#!/bin/bash
cd /opt
yum update -y
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel -y
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar.xz
cd /opt/Python-3.6.7
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3.6.7
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3.6.7
rm -rf /opt/Python-3.6.7
rm -rf /opt/Python-3.6.7.tar.xz
psutil模块
模块简介
是一个跨平台库,主要获取进程信息、系统利用率信息
pip3.6.7 install psutil
模块使用
# 导包
import psutil
# 使用包的功能
psutil.virtual_memory()
# 获取内存所有的信息
[root@docker ~]# python3.6.7
Python 3.6.7 (default, Jul 6 2021, 09:37:13)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import psutil
>>> psutil.virtual_memory()
svmem(total=1927176192, available=1161650176, percent=39.7, used=526856192, free=140374016, active=957849600, inactive=559788032, buffers=58167296, cached=1201778688, shared=37826560, slab=150802432)
cpu信息
通过psutil获取cpu相关的信息
操作方式
# 基本信息
cpu_times()
# cpu核信息
cpu_count()
# 我们可以为该方法添加 percpu=True获取逻辑cpu信息
简单实践
import psutil
cpu_info = psutil.cpu_times()
print("cpu基本信息:{}".format(cpu_info))
cpu_user = cpu_info.user
print("cpu的用户进程占比:{}".format(cpu_user))
cpu_system = cpu_info.system
print("cpu的系统进程占比:{}".format(cpu_system))
cpu_iowait = cpu_info.iowait
print("cpu的io进程占比:{}".format(cpu_iowait))
cpu_count = psutil.cpu_count()
print("cpu的核信息:{}".format(cpu_count))
cpu_count = psutil.cpu_count(logical=True)
print("cpu的核逻辑信息:{}".format(cpu_count))
cpu_users = psutil.users()
print("cpu的所有用户信息:{}".format(cpu_users))
[root@docker ~]# python3.6.7 psutil1.py
cpu基本信息:scputimes(user=9982.61, nice=7.97, system=8496.4, idle=1141936.04, iowait=1161.41, irq=0.0, softirq=115.24, steal=0.0, guest=0.0, guest_nice=0.0)
cpu的用户进程占比:9982.61
cpu的系统进程占比:8496.4
cpu的io进程占比:1161.41
内存信息
通过psutil获取内存相关的信息数据
实践
import psutil
# 获取全部内存信息
mem_info = psutil.virtual_memory()
print("内存的基本信息:{}".format(mem_info))
# 获取部分内存信息
mem_total = mem_info.total
print("内存的总量:{}".format(mem_total))
mem_used = mem_info.used
print("内存已使用:{}".format(mem_used))
mem_free = mem_info.free
print("内存总量:{}".format(mem_free))
mem_buffer = mem_info.buffers
print("内存总量:{}".format(mem_buffer))
mem_swap = psutil.swap_memory()
print("内存的交换信息:{}".format(mem_swap))
[root@docker ~]# python3.6.7 mem.py
内存的基本信息:svmem(total=1927176192, available=1159606272, percent=39.8, used=528900096, free=267259904, active=808960000, inactive=581611520, buffers=65433600, cached=1065582592, shared=37826560, slab=150192128)
内存的总量:1927176192
内存已使用:528900096
内存总量:267259904
内存总量:65433600
内存的交换信息:sswap(total=0, used=0, free=0, percent=0.0, sin=0, sout=0)
磁盘信息
简单实践
import psutil
disk_info = psutil.disk_partitions()
print("所有的分区详情:{}".format(disk_info))
# 挂载点信息获取/为例
disk_root = psutil.disk_usage("/")
print("根分区详情:{}".format(disk_root))
# 获取根分区的部分信息
root_total = disk_root.total
print("根分区挂载内容详情:{}".format(root_total))
root_free = disk_root.free
print("根分区空余:{}".format(root_free))
root_used = disk_root.used
print("根分区使用:{}".format(root_used))
root_percent = disk_root.percent
print("根分区使用占比:{}%".format(root_percent))
# 磁盘io操作相关信息
disk_io_info = psutil.disk_io_counters()
print("磁盘io信息:{}%".format(disk_io_info))
# 所有的
disk_io_info = psutil.disk_io_counters(perdisk=True)
print("磁盘io信息:{}%".format(disk_io_info))
# 磁盘io操作相关信息
psutil.disk_io_counters()
网络信息
获取网络相关的基本数据
使用方式
import psutil
# 获取所有信息
net_info = psutil.net_io_counters()
print("网卡所有的数据信息:{}".format(net_info))
# 获取部分信息
# 接收的数据信息
net_recv = net_info.bytes_recv
print("网卡接收的数据信息:{}".format(net_recv))
# 发送的数据信息
net_sent = net_info.bytes_sent
print("网卡接收的数据信息:{}".format(net_sent))
# 网卡的地址信息
net_addr = psutil.net_if_addrs()
print("网卡的地址信息:{}".format(net_addr))
# 网卡的状态信息
net_stats = psutil.net_if_stats()
print("网卡的状态信息:{}".format(net_stats))
# 网卡的连接信息
net_conn = psutil.net_connections()
print("网卡的连接信息:{}".format(net_conn))
其他信息
获取连接的用户信息,获取启动时间
实践
import psutil
import datetime
# 获取连接的用户信息
user_info=psutil.users()
print("连接的用户信息:{}".format(user_info))
# 获取启动时间
date_time = psutil.boot_time()
date_time = datetime.datetime.fromtimestamp(date_time).strftime("%F %T")
print("系统启动的时间信息:{}".format(date_time))
[root@python python]# python3.6.7 other.py
连接的用户信息:[suser(name=‘root‘, terminal=‘pts/0‘, host=‘139.226.81.70‘, started=1625618176.0, pid=1541)]
系统启动的时间信息:2021-07-07 08:35:27