python pexpect输出_python写监控程序Pexpect模块(转载)

本文介绍了如何使用Python的Pexpect模块进行服务器自动化监控,包括内存、VMStat、CPU信息、负载均衡、网络接口、磁盘空间和端口监控。通过创建Monitor类并实现相关方法,可以定期获取并打印系统关键指标。
摘要由CSDN通过智能技术生成

python写监控程序Pexpect模块(转载)

Published by xiaosixi on 2018年9月3日

1、安装pexpect模块

pip install pexpect==4.6.0

2、创建py文件

touch monitor.py

文件内容如下:

#!/usr/bin/python3

# -*- coding:utf-8 -*-

# __author__ = 'liao gao xiang'

import re

import time

from datetime import datetime

import pexpect

class Monitor(object):

"""服务器自动化监控"""

def __init__(self):

self.host = "39.107.227.39"

self.user = "root"

self.password = "hj2018@dmg"

def ssh_command(self, command):

"""SSH登录执行命令"""

ssh = pexpect.spawn('ssh -l {} {} {}'.format(self.user, self.host, command))  # 登录口令

i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=30)

if i == 0:

ssh.sendline(self.password)

if i == 1:

ssh.sendline('yes')

ssh.expect('[p,P]assword: ')

ssh.sendline(self.password)

index = ssh.expect(["$", "#", pexpect.EOF, pexpect.TIMEOUT])  # 此处注意,root用户登录符号为#,普通用户为$

if index != 0:

print("登录失败!报错内容:{};{}".format(ssh.before.decode("utf-8"), ssh.after.decode("utf-8")))

return False

return ssh

def memory(self):

"""内存监控"""

ssh = self.ssh_command("cat /proc/meminfo")

ssh.expect(pexpect.EOF)

data = re.findall(r"(\d+) kB", ssh.before.decode("utf-8"))  # ssh.before结果为bytes类型,使用utf-8解码为string

MemTotal = int(data[0]) // 1024  # 除以1024得到MB,整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值