python轮流监听多台服务器资源情况
在主动持续监听某台服务器基础上,优化为同时监听多台服务器资源占用情况;
优点:较初版,设备监听范围有了明显提升;
缺点:主动式,轮询方式,实时性较差。
#-*- coding: utf-8 -*-
#!/usr/bin/python '''
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ] 主选项和报告:
-b I/O 和传输速率信息状况
-B 分页状况
-d 块设备状况
-I { <中断> | SUM | ALL | XALL } 中断信息状况
-m 电源管理信息状况
-n { <关键词> [,...] | ALL } 网络统计信息
关键词可以是:
DEV 网卡信息统计
EDEV 网卡的错误统计
NFS NFS客户端
NFSD NFS服务器
SOCK Sockets (IPV4套接字)
IP IP流(IPV4)
EIP IP流的错误统计(IPV4)
ICMP ICMP流(IPV4)
EICMP ICMP流的错误统计(IPV4)
TCP TCP流(IPV4)
ETCP TCP流的错误统计(IPV4)
UDP UDP流(IPV4)
SOCK6 Sockets(IPV6套接字)
IP6 IP流(IPV6)
EIP6 IP流的错误统计(IPV6)
ICMP6 ICMP流(IPV6)
EICMP6 ICMP流的错误统计 (IPV6)
UDP6 UDP流(IPV6)
-q 队列长度和平均负载
-r 内存利用率
-R 内存状况
-S 交换空间利用率
-u [ ALL ]
CPU 利用率
-v Kernel table 状况
-w 任务创建与系统转换统计信息
-W 交换信息
-y TTY 设备状况
-o {<文件路径>}
将命令结果以二进制格式存放在指定文件中 ''' import paramiko class Remote_management_WayKind():
def __init__(self,Load_list): self.host_addr= Load_list[0]
self.user_name=Load_list[1]
self.ssh_loadkey=Load_list[2]
self.execmd=Load_list[3] self.back_normal_info='' def Command_Way(self):
#创建SSH连接日志文件
paramiko.util.log_to_file("paramiko666.log")
# 创建SSH对象
ssh_load = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh_load.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh_load.connect(hostname=self.host_addr, port=22, username=self.user_name, password=self.ssh_loadkey)
# 执行命令
stdin, stdout, stderr = ssh_load.exec_command (self.execmd,bufsize=1) #execmd传的参数free也是命令 stderr.channel.set_combine_stderr(stdout) #打开屏幕打印log文件,如果没有便新创建,模式a+为追加模式
log_file = open("message666.log", "a+")
counter=0
while counter<21: self.back_normal_info = stdout.readline()
self.back_normal_info = self.host_addr + str("设备信息----- ") + self.back_normal_info
counter+=1 if len(self.back_normal_info) == 0:
break
print(str(self.back_normal_info.strip())) #写入信息
log_file.writelines(self.back_normal_info) #关闭屏幕打印log文件
log_file.close() # 关闭连接
ssh_load.close() if __name__=='__main__':
Load_list1 = [['IP1','用户名1','用户名1','命令1'],
['IP2','用户名2','用户名2','sar -n DEV 5 -u -r'],
['IP3','用户名3','用户名3','sar -n DEV 5 -u -r']] while True:
for Load_list in Load_list1: Ssh_load=Remote_management_WayKind(Load_list)
Ssh_load.Command_Way()
python轮流监听多台服务器资源情况的更多相关文章
- python hook监听事件
python hook监听事件 作者:vpoet mail:vpoet_sir@163.com # -*- coding: utf-8 -*- # # by oldj http://oldj.net/ ...
- (修改)oracle11g监听多台主机配置,用pl/sql连接操作多个数据库详解
很多朋友在开发项目中并不是每个人用一个数据库,而是有单独的一台主机作为开发的数据库服务器,这样,就需要我们的开发人员去连接它. 首先是进入oracle的 Net Mananger:
- python socketserver监听多端口多进程
多进程监听多端口 # 多线程socket # 程序监听两个端口,端口逻辑相同其中一个端口放在子进程下 # 每次请求会在产生一个进程处理请求 import SocketServer from multi ...
- python 文件监听
对文件进行监听.过滤 def tail(filename): f = open(file=filename, mode='r', encoding='utf-8') # 打开文件不能用with,因为监 ...
- Python——pyHook监听鼠标键盘事件
pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...
- python pynput监听键盘
"""小白随笔,大佬勿喷""" #键盘输入 from pynput.keyboard import Key,Controller,Liste ...
- oracle登陆,在监听服务启动了的情况下,登陆用户还是报错未启动监听服务的错误(刚开始装oracle是能登陆的,重启之后装了plsql)
刚开始装oracle是能登陆的,重启之后装了140M的plsql,所以有可能是plsql跟oracle监听冲突了,所以我之后换了33M的plsql,oracle就没问题了,可以正常登陆了
- UIScrollView监听静止的数种情况
1.直接通过block -(void)testInBlock { //通过block监听 [UIView animateWithDuration:1.0 animations:^{ self.scro ...
- python脚本监听nginx是否运行
import sys import time import os import logging from logging.handlers import RotatingFileHandler imp ...
- linux网络连接的查看和端口的监听
网络软件都是由客户端和服务端组成,由服务端在服务器上监听指定的端口处理接收到的数据,而客户端是向服务器端监听的端口发送数据,并由服务器端对该数据进行处理,然后将处理结果返回给客户端. 那么我们在lin ...
随机推荐
- Linux-centos7 下开放某个端口
方式一 1.开启防火墙 systemctl start firewalld 2.开放指定端口 firewall-cmd --zone=public --add-port=1935/tcp --per ...
- window.parent.postMessage 解决iframe父子页面域名不一样出现的跨域问题
window.parent.postMessage 解决iframe父子页面域名不一样出现的跨域问题 内嵌 iframe 页面,一般使用 window.parent 或 window.top 来获取父 ...
- java stream map和 flatmap区别
区别:map mapper返回R,flatMap mapper返回Stream<R> 官网解释 1,<R>Stream<R> flatMap(Function< ...
- css实现图片在div中居中的效果
利用图片的margin属性将图片水平居中,利用div的padding属性将图片垂直居中. 结构代码同上: css代码如下: div {width:300px; height:150px; paddin ...
- eclipse中利用Maven逆向工程生成PO类以及mapper(mybatis)
在pom.xml的project>build里面添加如下代码,让maven环境支持mybatis-generator组件 <pluginManagement> <plu ...
- python基础篇 15-常用模块:random string sorted lambda函数
一.random import os,random,sys,time,string print(random.randint(1,10)) # 产生随机的整数 print(random.uniform ...
- md5加密js内容
避免以后都得百度,直接留一份存档 /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Diges ...
- (论文笔记)Deep Neural Network for YouTube Recommendation
YouTube推荐系统上的深度神经网络 [总结] 在召回模型中,用到的特征比较粗,在训练过程中,目的是训练出一个用户向量u(通过用户本身的浏览和观看信息和统计学信息,假设是N维的),用户向量的用途分两 ...
- 使用类的习题(c++ prime plus)
第一题 vect.h: #ifndef VECTOR_H_ #define VECTOR_H_ #include <iostream> namespace VECTOR { class V ...
- 10s后再次获取手机验证码
一般手机验证码获取都会加个间隔时间 js代码如下: function getDxCode(btn){ var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则 var mo ...