- 浏览: 2653705 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。
1.Expect的主要流程:
1.通过spawn启动子程序。
2.发送命令。
3.等待子程序产生特定输出,做出特定的响应。
4.获取缓冲区的结果。
2.spawn介绍
spawn 是Pexpect最主要的接口. 使用这个类来启动和控制子程序,其构造函数如下:
args 当子程序需要参数时,还可以使用一个参数的列表:
logfile 参数指定了 Pexpect 产生的日志的记录位置。
比如,ssh.logfile = sys.stdout
3.使用 Pexpect 控制子程序
为了控制子程序,等待子程序产生特定输出,做出特定的响应,可以使用 expect 方法。方法定义:
pattern 可以是正则表达式, pexpect.EOF , pexpect.TIMEOUT ,或者由这些元素组成的列表
4.打印 before 成员的内容
child = pexpect.spawn('/bin/ls /')
child.expect (pexpect.EOF)
print child.before
5.通过Pexpect监控应用
主要的设计思路2部分:
1. 通过Pexpect自动登录到每台服务器
2. 在每台服务器执行命令或分析日志
3. 通过记录输出的内容来监控应用
6.希望做的监控项目
1.数据库连接数
2.jvm内存,solr状态
2.web服务器状态
3.web服务器服务器连接数
4.系统load
5.memcached状态
6.ningx,SYN_RECV,统计最近访问频率最高的来源IP,统计最近访问频率最高的URL
检查步骤:
s9 gunicorn
s9 nginx
s9 mani
--------------
s8 gunicorn
s8 mani
返回数据格式:
{
nginx:[{'s1':''},{'s9':''}],
mysql:[{"s10":"连接数:1003"},{"s11":"连接数:200"}],
}
参考:
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect1/
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/
后记:
前面的方案存在一个问题,每台机器都要执行一遍ssh,非常慢,可以通过多线程的方式:
1.Expect的主要流程:
ssh = pexpect.spawn('/bin/bash', ['-c', 'ssh %s' %(server)],timeout=1.5) ssh.sendline("tail -200 /duitang/logs/usr/www.duitang.nginx.access.log ") ssh.expect([pexpect.EOF,pexpect.TIMEOUT]) print ssh.before
1.通过spawn启动子程序。
2.发送命令。
3.等待子程序产生特定输出,做出特定的响应。
4.获取缓冲区的结果。
2.spawn介绍
spawn 是Pexpect最主要的接口. 使用这个类来启动和控制子程序,其构造函数如下:
class spawn: def __init__(self,command,args=[],timeout=30,maxread=2000,\ searchwindowsize=None, logfile=None, cwd=None, env=None)
args 当子程序需要参数时,还可以使用一个参数的列表:
child = pexpect.spawn ('/usr/bin/ssh', ['user@example.com']) child = pexpect.spawn ('ls', ['-latr', '/tmp'])
logfile 参数指定了 Pexpect 产生的日志的记录位置。
比如,ssh.logfile = sys.stdout
3.使用 Pexpect 控制子程序
为了控制子程序,等待子程序产生特定输出,做出特定的响应,可以使用 expect 方法。方法定义:
expect(self, pattern, timeout=-1, searchwindowsize=None)
pattern 可以是正则表达式, pexpect.EOF , pexpect.TIMEOUT ,或者由这些元素组成的列表
4.打印 before 成员的内容
child = pexpect.spawn('/bin/ls /')
child.expect (pexpect.EOF)
print child.before
5.通过Pexpect监控应用
主要的设计思路2部分:
1. 通过Pexpect自动登录到每台服务器
2. 在每台服务器执行命令或分析日志
3. 通过记录输出的内容来监控应用
6.希望做的监控项目
1.数据库连接数
2.jvm内存,solr状态
2.web服务器状态
3.web服务器服务器连接数
4.系统load
5.memcached状态
6.ningx,SYN_RECV,统计最近访问频率最高的来源IP,统计最近访问频率最高的URL
检查步骤:
s9 gunicorn
s9 nginx
s9 mani
--------------
s8 gunicorn
s8 mani
返回数据格式:
{
nginx:[{'s1':''},{'s9':''}],
mysql:[{"s10":"连接数:1003"},{"s11":"连接数:200"}],
}
参考:
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect1/
http://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/
后记:
前面的方案存在一个问题,每台机器都要执行一遍ssh,非常慢,可以通过多线程的方式:
发表评论
-
python读取图片exif信息
2014-11-06 10:53 2400f = open("/home/admin/tlo ... -
Python程序的执行原理
2014-04-14 15:44 17231. 过程概述 Python先把代码(.py文件)编译成字 ... -
如何创建一个短链服务
2013-12-26 16:23 0参考: http://stackoverflow.com ... -
python 解析命令参数(argument)组件argparse
2013-12-11 17:35 1401参考: http://youngsterxyf.githu ... -
pyhon命令行工具optparse
2013-11-10 16:27 1028使用python optparse 可以创建命令行工具,下面 ... -
Python在豆瓣的应用
2013-10-21 10:46 1194Python在豆瓣的应用,hongqiangning分享 ... -
用python爬虫抓站的一些技巧总结
2013-10-10 14:12 1681学用python也有3个多月了,用得最多的还是各类爬虫 ... -
python小技巧
2013-10-10 11:50 7341. 声明长度256的数组 a=[0]*256 ... -
使用tesseract-ocr破解网站验证码
2013-10-09 10:25 1212原文:使用tesseract-ocr破解网站验证码 ... -
和豆瓣CMGS交流
2013-06-20 17:36 5838蒋云鹏: 在?CMGS: 在蒋 ... -
python乱码问题('ascii' codec can't encode character u'\u4e2d' in position 0)
2013-05-20 19:03 4245>>> k = u'中' >> ... -
python shell 交互模式
2013-04-28 22:17 1628python 通过code模块可以很容易的进入交互模式: ... -
jython和gunicorn性能测试对比
2013-04-13 13:03 1294helloworld,笔记本上: gunicorn ... -
python的mysql客户端-MySQLdb
2013-04-04 10:13 1159平时的主要编程语言是Java,开发时也主要用Mysql,经常 ... -
Python几种并发实现方案的性能比较
2013-03-18 21:14 2956原文:http://www.elias.cn/P ... -
python汉字和Unicode码(utf-8)之间的转换(Pack/Unpack)
2013-03-18 21:13 1643保证你要转换的字符串编码为UTF8,如果不是,请iconv ... -
python反序列化的坑
2013-01-06 18:06 1278今天遇到python一个坑,调用memcached的get_m ... -
sqlalchemy connection pool.py 源代码
2012-12-29 22:58 2237把 sqlalchemy pool源代码copy下来,有空看看 ... -
SQLAlchemy简单介绍
2012-12-28 22:41 0文档参考:http://docs.sqlalchemy.org ... -
pymysql简单使用
2012-12-28 12:38 2118import pymysql conn = pymysq ...
相关推荐
Pexpect允许我们创建子进程并监控其输出,从而在适当的时候向其发送输入。以下是一个使用Pexpect自动输入密码并执行scp拷贝的示例: ```python import os from pexpect import spawn # 获取当前脚本的目录 cwd = ...
本文将详细介绍如何利用Python来实现远程服务器的自动化监控,并通过具体示例代码进行演示。 #### 一、Python监控远程服务器的背景与优势 Python作为一门高级语言,具备良好的可读性和较低的学习曲线,使得其在...
主机安全态势感知系统是网络安全领域的重要组成部分,它通过对主机系统的实时监控,分析并预测潜在的安全威胁,为网络安全防护提供决策支持。本设计以Python作为主要开发语言,构建了一套高效、实用的主机安全态势...
这个名为"Python实现的运维管理系统"的压缩包文件,显然是一个利用Python语言构建的用于自动化运维任务的系统。 在运维管理中,Python可以用于以下关键功能: 1. **配置管理**:Python可以编写脚本自动配置服务器...
然而,随着PowerShell的普及,越来越多的功能可以通过PowerShell来实现,这为跨平台监控提供了便利。 本文将详细介绍如何使用Python结合SSH协议,通过PowerShell远程监控Windows服务器,并提供实际代码示例,以便...
这个程序使用了`pexpect`库来执行系统命令,并通过`threading`库创建线程,实现并行ping。 首先,我们导入了所需的库:`pexpect`用于执行系统命令(如ping),`datetime`用于获取当前时间,以及`threading`库来创建...
例如,运维工程师可以使用该系统来监控大量的 IP 主机,并及时发现故障主机。这样可以提高运维效率和网络安全性。 结论 本文档介绍了如何使用 Python 实现批量探测 IP 存活性并发送邮件告警。该系统可以应用于实际...
10. **性能监控**:Python还可以通过`psutil`库获取系统资源信息,如CPU、内存、磁盘和网络使用情况,用于实时监控系统状态。 综上所述,"Python实现跨平台批量运维小神器"很可能是结合了上述各种功能的工具集合,...
2. 库丰富:Python拥有众多用于网络管理、系统管理、监控、日志分析等的库,如paramiko(SSH连接)、nmap(端口扫描)、pexpect(交互式进程控制)等。 3. 脚本能力强大:Python能够方便地执行shell命令、处理文本...
其核心组件包括:ELVES-CENTER(中心控制台)、openapi(开放接口)、scheduler(调度器)、heartbeat(心跳机制)、queue(消息队列)、crond(定时任务)、dashbord(监控仪表盘)、cmdb(配置管理系统)、proxy...
### Python实现批量探测IP存活性并发送邮件告...这对于减轻运维人员的工作负担、提高系统监控效率具有重要意义。此外,根据实际应用场景的不同,还可以考虑进一步扩展该脚本的功能,例如增加日志记录、错误重试机制等。
能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理。 2、IPy(http://github.com/haypo/python-ipy),辅助IP规划。 3、dnspython...
在Python编程中,SSH(Secure Shell)是一种广泛用于远程登录和执行命令的安全协议。...同时,通过结合`paramiko`库,我们可以构建更复杂的脚本来自动化更复杂的任务,如文件传输、监控系统状态等。
Python自动化运维是现代IT环境中一个不可或缺的技术领域,它利用Python编程语言来实现系统管理、监控、部署、故障排查等一系列日常运维任务的自动化。Python因其语法简洁、库资源丰富以及跨平台性而备受青睐,成为...
例如,通过os模块创建、删除、移动文件,使用pexpect库进行交互式命令执行,如安装软件、更新系统。 2. **监控系统**:Python能与各种监控工具(如Nagios、Zabbix)集成,编写自定义插件监测服务器性能指标(CPU、...
Python的库如Fabric、Pexpect、Paramiko等,允许开发者编写自动化脚本,执行远程命令、文件传输、系统监控等任务。此外,Python还可以用于构建持续集成/持续部署(CI/CD)管道,通过工具如Jenkins、Travis CI等进行...
这通常通过截屏分析或日志监控来实现。 4. 发送触控事件:利用adb的`input tap`命令,根据之前获取的坐标模拟点击操作,实现自动收取能量、偷取能量和浇水。 5. 脚本编写:编写Python脚本,定义函数来执行各项操作...
易语言可以调用第三方库,如Pexpect或SharpPcap,来实现这些功能,使管理员能在本地控制远端设备。 4. **性能监控**:系统需定期收集网络性能数据,如带宽利用率、延迟、丢包率等。易语言可以通过发送特定的网络...
3. **操作系统平台**:在物联网设备上,常见的操作系统有Raspberry Pi OS(基于Debian的Linux发行版)、MicroPython(针对微控制器的Python实现)、CircuitPython(更简单的MicroPython分支)和Contiki-OS(面向资源...
开发者也可以通过 Paramiko 进行复杂的任务,例如实现自定义的文件同步脚本、远程监控系统或者分布式计算。 总的来说,Paramiko是一个强大且灵活的SSH工具,它简化了Python程序与远程服务器的安全交互,对于任何...