【原创】用python实现shell的tail操作

在工作过程中发现监控实时刷新文件时,不是那么的任性。

故结合shell中的tail,做了一个类似tail的python脚本。

详情如下:

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 import os,sys,time,getopt
 4
 5 lastline=‘‘
 6 linelist=[]
 7 def getNewLine(filename, count):
 8     global lastline
 9     global linelist
10     cmd=‘tail -‘+count+‘ ‘+filename
11     while(1):
12         #line5=os.popen(‘tail -5 speedy_result.txt‘).read()
13         newcount=0
14         line5=os.popen(cmd).read()
15         lines=line5.split(‘\n‘)
16         for line in lines:
17             if(line <= lastline): continue
18             newcount+=1
19             lastline=line
20             linelist=[]
21             linelist.append(line)
22
23         time.sleep(0.5)
24         if(newcount<=0):
25             linelist=[]
26
27         return linelist
时间: 2024-07-31 10:26:12

【原创】用python实现shell的tail操作的相关文章

用zabbix生成awstats图表以及通过Python调zabbix API自动化操作

awstats作为一款日志分析软件,功能不错,但是界面过于简单,也没有图表功能,这里我采取了一种变通的方法,将awstats的分析结果(pv.hits(文件数).bandwidth.visits(独立ip))添加到zabbix,并通过zabbix生成趋势图表. 在前两篇文章中,我们队awstats的使用及其工作方式进行了简明扼要的介绍:awstats对每个站点进行分析之后,会生成一个"awstats012016.txt"格式的"数据库"文件:awstats的展示页面

python编写shell脚本详细讲解

今天需要编写一个shell脚本实现App自动生成的功能,需要处理HTTP REST请求,解析JSON,处理文件,执行命令等,本来想用shell搞定,但感觉比较麻烦,还是用python吧,虽然以前用Python都是在树莓派上玩的,多尝试一种方法总是好的. 虽然我受linux的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极.为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没有任何美感可言.其次是sh脚本的处理能力还是比较弱的,在文本处理.XML处理还有网络

【转】为eclipse安装python、shell开发环境和SVN插件

原文网址:http://www.crazyant.net/1185.html eclipse是一个非常好用的IDE,通常来说我们都用eclipse来开发JAVA程序,为了让开发python.shell等脚本也能在eclipse上运行,出现了很多相关的插件: python:pydev shell:shelled svn:Subclipse PHP:PDT 使用eclipse过程中可以多搜一搜网上的插件,有些能大幅提高开发效率,本文以开发linux环境下的python.shell脚本为背景,安装了e

python 调用shell命令的方法

在python程序中调用shell命令,是件很酷且常用的事情…… 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. 实例:os.system('ls -l *') 2. os.popen(command,

shell命令--tail

shell命令--tail 0.tail命令的专属图床 点此快速打开文章[图床_shell命令tail] 1.tail命令的功能说明 ? tail 命令用于显示文件尾部内容,默认执行 tail 命令会输出文件最后的 10 行. 2.tail命令的语法格式 SYNOPSIS tail [OPTION]... [FILE]... 3.tail命令的选项说明 -f:循环读取 -q:不显示处理信息 -v:显示详细的处理信息 -c:显示的字节数 -n:显示文件的尾部 n 行内容 --pid=PID:与-f

学习python对文件内容的操作

在Python中对文件的操作使用open(filename,"w"),这里filename是文件名称,w指写入操作,会自动覆盖文件中的所有内容,还有r读操作和a追加操作等. 需要注意的是:只能同时进行一项操作,比如写的时候不能读,即使你使用w+参数,也只是读出来空白内容,不过不会报错,所有执行完一项操作使用新的参数才能继续不同的操作,如: f = open(filename,'w')  #以写操作打开文件filename,文件存在则覆盖,不存在则建立 f.write('this is 

Python中列表list常见操作

主要涉及知识点 列表是我们python里面最常见的数据类型,我们主要有以下的操作. 1.索引 2.切片 3.追加 4.删除 5.长度 6.循环 (也称遍历) 7.包含 8.嵌套 例如定义列表: List2=['openstack','python','linux',"docker","zabbix","nginx","linux","linux","123","ww33##&q

Python/C++ 对字符串的操作

字符串操作在任何语言中都很常用. 本文列举了一些常见的Python/c++ 对字符串的操作. c++ 的使用了boost libraray,  所涉及到的函数都在  <boost/algorithm/string.hpp> 中定义.   python  c++ 大小写转换 'str'.upper(),  'str'.lower() boost::to_upper('str'), boost::to_upper_copy('str') 字符串包含某个substr str.find(substr)

python执行shell获取硬件参数写入mysql

最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() os.system('ls')#返回结果0或者1,不能得到命令的输出 2. os.popen() output = os.popen('ls') print output.read()#打印出的