`
mingren135
  • 浏览: 69119 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
批量查询日志的脚本,自己用着还行,如果给别人也还需要复制一份。如能够把多台机器的日志搜索做成web后台,这样就方便了。 上篇博客解决了登录服务器的信任登录交互问题,那么我们就能够更方便的登录到机器上执行命令。这里我用的是SSHTools ,它是一组 Java 的 SSH 应用和开发包,包括:Java SSH API, SSH Terminal, SSH secured VNC client, SFTP client and SSH Daemon。   POM中引入sshtools: <dependency> <groupId>sshtools< ...

Linux-ssh公钥登录

随着线上机器的增多,在多台机器上查找日志的需求越来越多了,最近决定写个web版的日志搜索后台,第一个要解决的问题就是频繁的人机交互问题。SSH命令远程执行命令首先需要建立相关主机间的信任关系,否则在执行命令前SSH命令会提示你输入用户密码,不利于脚本的自动化。   建立信任关系步骤: 1)在一台机器上生成本机的公钥和私钥文件:ssh-keygen -t rsa 2)~/.ssh下会出现两个文件:idrsa和idrsa.pub。其中idrsa.pub为公钥文件,将其内容复制到远程主机的 ~/.ssh目录下的authorized_keys文件中 然后就可以在不输入密码的情况下在远程主 ...
工作都是搞服务端比较多,最近折腾上脚本了。。。希望能持续补充一些实用的东东,这些都和具体的语法关系不大   1)获取本机hostname和ip os.uname() ('Linux', 'v333444.sqa.cma', '2.6.18-164.el5xen', '#1 SMP Tue Aug 18 15:59:52 EDT 2009', 'x86_64') os.uname()[1] 'v333444.sqa.cma' import socket socket.gethostname() 'v333444.sqa.cma' socket.gethostbyna ...

Linux-输出重定向

常用文件重定向命令哦   command > filename 把标准输出重定向到一个新文件中 command >> filename 把标准输出重定向到一个文件中(追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中 command 2> filename 把标准错误重定向到一个文件中 command 2>> filename 把标准输出重定向到一个文件中(追加) command >> ...
Linux只所以受到程序员的欢迎,一部分原因是本身自带很多有用的命令,再结合shell等脚本就可以玩出很多花样,这里总结一下工作场景中用到的命令。    1)grep:按照某种匹配规则搜索文件,并将符合匹配条件的行输出 场景1:间隔一定时间段的2次tail日志结果保存到文件a和b,取a、b的差集(b-a)得到增量日志 grep -F -v -f a.log b.log | sort | uniq > data.log 补充说明,取(a∩b):  grep -F -f aa.log bb.log | sort | uniq 还有comm命令也能实现上面的需求, comm ...
Python和时间相关的模块有2个:time、datetime   time模块,常用的方法   1)time()方法:返回UTC时间1970年1月1日至今有多少秒 time(...) time() -> floating point number Return the current time in seconds since the Epoch. Fractions of a second may be present if the system clock provides them.    2)localtime()方法:返回 ...
今天迎来了2013的第一场大雪,离2002年的第一场雪已经过去11年了,真真切切的感受到什么是弹指一挥间。最近工作中用到了CP模块,顺便就总结一下。   #!/usr/bin/env python import ConfigParser as cp def read(cf): for section in cf.sections(): print '[' + section + ']' for option in cf.options(section): print option + "=" ...
根据用户提供的分隔符,分解日志数据   该模块作用有2个: 1)提前检测能否正确解析日志,否则用户需要修改分隔符,或者日志格式 2)准备导入数据库的数据     logparse.py def parselogline(line, tupleseperatorlist): ''' input line: line in log file tupleseperatorlist: seperators in tuple output splited values ''' dat ...
 线上系统的稳定,不仅需要细心的编程,对各种临界、异常情况的考虑,也包括在系统出现故障的情况下,我们能在第一时间发现并定位,快速解决问题。这里我想借助python解析关键点的线上日志,并将解析结果导入sqlite数据库,通过一些方式获取统计结果(比传统的grep xxx要快速和方便很多),这样在系统beta发布或外部因素影响时,观察若干分钟,对比关键点的日志统计数据就能最快的发现系统是否稳定运行。   分析问题后,觉得可以通过下面几个模块协作来完成我的需求   1)日志记录行数据切分检测:用户提供1条日志样本和数据分隔符,正确取出数据 2)数据库表创建:用户提供表字段名、字段和日志行数 ...
Writing is an attitude!   定义Python字符串的方式有若干种: 1)单引号或双引号 print 'aaa' print "aaa" #包含引号的字符串 print 'aa"bb"cc' print "aa'bb'cc"  2)三引号 #多行字符串 print '''aaaaaa bbbbbb''' #包含任意单、双引号 print '''aaaa'bb'cccc"dddddd"eee'''  3)三者关系 #单引号中不能包含单引号,双、三引号都是一样,不能包 ...
内嵌式数据库sqlite想必大家都听说过,Python内置了sqlite模块,提供了访问sqlite的统一标准。不同的Python版本带的sqlite版本不大一样,如果机器在Python环境中找不到sqlite3,则尝试导入sqlite2或sqlite模块试试。   我用到的机器安装的是Python 2.4.3 (#1, Jun 11 2009, 14:09:37),只能导入sqlite模块,使用方法上没有什么区别的。   以创建一张表,执行插入、查询、更新、删除为例,基本步骤如下:   1)创建数据库连接,如果aa.db文件不存在,则会自动新创建一个   conn = sqli ...
1)看看下划线在模块变量命名的访问情况   a.py corp = 'corp:taobao' #public _corp = '_corp:taobao' #obey python coding convention, consider it as private __corp = '__corp:taobao' #private __corp__='__corp__:taobao' #special, python system use, user should not define like it b.py from a import * print ...
最常用的有2个内置函数,通过它们可以查找需要的方法   1)dir:查看object、class上的属性或方法   2)help:查看object、class的详细说明   其它还有:   3)type:查看object类型   4)isinstance:判断object是否属于某class   5)len:返回object的长度   当然还有很多,可以通过sys模块来查看   import sys print dir(sys.modules['__builtin__'])    
目前为止,自己写的脚本中,用到最多的就是字符串处理,但只是业余时间写写脚本,因此会忘掉一些简单方法,在这里总结一下。   1)截取字符串:有2种方式,孰优孰劣显而易见   __getslice__(...) x.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported.   翻转字符串,x[::-1],-1是步长值   2)去除字符串前后空格   strip(...) S.strip([chars]) -> string or unic ...
“工欲善其事必先利其器”,话虽这么说,其实很多人在学习一种编程语言时,一开始都不会在意IDE的,等这种语言入门之后,才会考虑有没有什么好用的开发工具等问题。这里我把学到的一点点Python知识和大家分享一下,也是对过去的一点总结。   1)Eclipse+PyDev,有代码提示和debug功能,推荐使用   2)IDLE,Windows下安装Python后自带的解释器,   该IDE遇到的问题:   把脚本复制到linux下,执行会报错:-bash: ./match.py: /usr/bin/python^M: bad interpreter: 没有那个文件或目录   该问题 ...
Global site tag (gtag.js) - Google Analytics