2.8实验

xftp连接失败:将协议FTP改为SFTP,端口号21改为22

一、python运行psutil库
1.安装psutil源码
linux自带python,用python -V查看版本是2.7

https://pypi.python.org/pypi?:action=display&name=psutil#downloads
找到psutil-5.2.2.tar.gz 点击即可下载
tar xzvf psutil-5.2.2.tar.gz
cd psutil-5.2.2
python setup.py install
报错
在这里插入图片描述
百度说是缺Python.h,所以就安装以下python的devel环境就好
yum install python-devel
然后再安装成功
在这里插入图片描述

2.使用psutil获取内存信息
python
import psutil
在这里插入图片描述
在这里插入图片描述
重启再导入成功,原因不明

在这里插入图片描述
总内存,内存使用率
mem.total,mem.used
在这里插入图片描述
swap信息
在这里插入图片描述
swap使用
psutil.swap_memory().used
在这里插入图片描述
3.使用psutil获取cpu信息
psutil.cpu_times_percent()
在这里插入图片描述
占用cpu的时间比
psutil.cpu_times_percent().user
在这里插入图片描述
获取cpu的逻辑个数
psutil.cpu_count()
在这里插入图片描述

4.使用psutil获取磁盘disk信息
获取磁盘分区信息
psutil.disk_partitions()
在这里插入图片描述
获取磁盘第一个分区
psutil.disk_partitions()[0]
在这里插入图片描述
获取磁盘第一个分区的挂载点
psutil.disk_partitions()[0].mountpoint
在这里插入图片描述
第一个分区的总使用量
pstil.disk_usage(’/’)
在这里插入图片描述
总的磁盘读写
psutil.disk_io_counters()
在这里插入图片描述每个磁盘的io信息
psutil.disk_io_counters(perdisk=True)
T要大写不然报错
在这里插入图片描述
5.网络信息

获取总的网络信息
psutil.net_io_counters()在这里插入图片描述
获取单个出口的网络I/O信息
在这里插入图片描述

6.其他网络信息

获取当前用户
psutil.users()
在这里插入图片描述
获取机器开机时间,返回unix时间戳
psutil.boot_time()
在这里插入图片描述

unix时间转换自然时间格式
datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
需要导入datetime库
在这里插入图片描述

7.系统进程管理办法

列出所有系统进程
psutil.pids()
在这里插入图片描述

查看进程名字
psutil.Process(pids).name
在这里插入图片描述
进程路径
p.exe()
在这里插入图片描述
进程工作目录绝对路径
p.cwd()
在这里插入图片描述
进程状态
p.status()
在这里插入图片描述
进程创建时间
p.create_time()
在这里插入图片描述
进程uid
p.uids()
在这里插入图片描述
进程gid
p.gids()
在这里插入图片描述
进程cpu信息
p.cpu_times()
在这里插入图片描述
进程内存使用率
p.memory_percent()
在这里插入图片描述
进程内存信息
p.memory_info()
在这里插入图片描述
进程的I/O信息
p.io_counters()
在这里插入图片描述

返回打开进程的socket列表
p.connections()
在这里插入图片描述
进程开启的线程数
p.num_threads()
在这里插入图片描述

二、用python监控top
touch一个pythoncpu.py

#! /usr/bin/python

import os,time,datetime

time2sleep=2.5
while True:
        print datetime.datetime.fromtimestamp(time.time()).strftime("%Y-%m-%d %H:%M:%S")
        print os.popen('top -bi -n 2 -d 0.02').read().split('%')[1].split('\n')[0]
        time.sleep(time2sleep)

每两点五秒监控一次top中的cpu变动

再touch一个sixunhuan.py

import os,time
i=0
while True:
        i=i+1

同时运行,在死循环运行期间可见可用cpu下降,关闭死循环程序后回升。
在这里插入图片描述

pythoncpu2.py

#! /usr/bin/python

import psutil
for proc in psutil.process_iter():
        print("pid:%d,name:%s,cpu:%s" % (proc.pid,proc.name(),proc.cpu_times()))

在这里插入图片描述
下略(太长了)
top如果写成top -bi -n 2
b指批处理,i猜想是简略模式(只显示使用cpu的进程?未证实),-n %d指重复几次
如果只是要监控僵尸进程等应该只监控使用cpu的更效率

改进一下

#! /usr/bin/python

import os,time,datetime
from subprocess import Popen,PIPE

time2sleep=2.5
while True:
        print datetime.datetime.fromtimestamp(time.time()).strftime("%Y-%m-%d %H:%M:%S")
        print os.popen('top -bi -n 2 -d 0.02').read().split('COMMAND')[2:]

在这里插入图片描述
一个死循环,cpu的占用率就100%了

发布了5 篇原创文章 · 获赞 2 · 访问量 2672

猜你喜欢

转载自blog.csdn.net/weixin_43621813/article/details/104226462
2.8