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 ...
随机推荐
- 最简单明了的yield from解释
def one(): print('one start') res = yield from two() print('function get res: ', res) return 'one' + ...
- 基于Jenkins实现可腹部回滚的cicd平台
Jenkins :是一个开源的实现持续集成的工具,可以实施监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式直观的展示出项目构建的趋势和稳定性 maven:只有在Java项 ...
- 04 使用 BTrace 进行拦截调试
BTrace BTrace 可以动态地向目标应用程序的字节码注入追踪代码,使用的技术有 JavaCompilerApi, JVMTI, Agent, Instrumentation+ASM 使用方法: ...
- FFmpeg 命令行
FFmpeg命令行帮助 #>ffmpeg -h #>ffmpeg -h long #>ffmpeg -h full 将视频按照指定的宽高输出 #>ffmpeg -i input ...
- 杭电oj--1019题C++实现
这道题有两个问题: 首先,是求利用数论的辗转相除法求最大公约数,后再求最小公倍数m*n/gcd(m,n),其中,m*n可能会超过int 数据范围,所以,该语句换成m/gcd(m,n)*n. 然后是如果 ...
- Go语言中密码加密校验
使用go自带的库bcrypt bcrypt是不可逆的加密算法,无法通过解密密文得到明文. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储 ...
- Ribbon负载均衡的实现流程简要分析
SpringCloud中使用Netflix方案做分布式时,只需要在RestTemplate的bean定义上加一个注解@LoadBalanced,无需做其它任何操作就可以开启负载均衡,怎么做到的呢? 不 ...
- 【Android HttpClient引入】感慨下自己看的Android教程有点老了
教程看到使用HttpClient,发现没有继承该类. 原因是API23即在Android 6.0(API 23) 后,Google已经移除了Apache HttpClient 相关类,推荐使用Http ...
- 修改AXI UART D16550 FIFO深度的过程记录
仅限于AXI UART 16550 v. 2.0,其他版本可能存在差异,经过实际测试,可以将fifo深度从默认的16成功修改为32.128和256.参考了两篇帖子中提到的方法,分别是修改AXI UAR ...
- 1vue模板语法
<body> <div id="app1"> <div>{{msg}}</div> </div> <script ...