Python tail 实现S3 动态上传
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本文源码转至:https://github.com/kasun/python-tail 感谢作者, 稍加修改,实现了文件动态上传的功能一: 主体执行部分[root@linux219 base]# ca
千家信息网最后更新 2024年11月11日Python tail 实现S3 动态上传
本文源码转至:https://github.com/kasun/python-tail 感谢作者, 稍加修改,实现了文件动态上传的功能
一: 主体执行部分[root@linux219 base]# cat vsftp.py#!/usr/bin/env python#-*-coding:UTF-8-*-"""@Item : cheetah v1.0@Author : william@Group : System YunWei@Date : 2015-01-28@E-mail : swq.499809608@163.com@Funtion: """import json,sys,time,osimport timeimport hmacimport hashlibimport requestsimport reimport tailDfile = "/data/base/vsftp"Vfile = "/var/log/vsftpd.log"Nfile = "/data/base/vsftp/n.log"def s3Vsftp(): os.system("cp -fr %s %s "%(Vfile,Nfile)) os.system("echo ''>%s "%Vfile) fp = open(Nfile,'r').readlines() for x in fp: if re.search("CHMOD",x) or re.search("UPLOAD",x): x = x.strip() x = x.split('"')[3] nx = x.split()[0] if os.path.isfile("/data/cifs"+nx): os.system("s3cmd --acl-public put /data/cifs%s s3://swq499809608.aws.com%s" %(nx,nx)) elif re.search('zip',nx): try: os.system("s3cmd --acl-public put %s s3://swq499809608.aws.com%s" %(nx,nx.split('imguser')[1])) except: pass os.system("mv %s %s/%s.file"%(Nfile,Dfile,time.strftime("%F-%H-%M")))def work(): while True: t = tail.Tail(Vfile) print t.follow()if __name__ == "__main__": sc = work() 二: tail. 实现部分源码转至: https://github.com/kasun/python-tail[root@linux219 base]# cat tail.py#!/usr/bin/env python'''Python-Tail - Unix tail follow implementation in Python.python-tail can be used to monitor changes to a file.Example: import tail # Create a tail instance t = tail.Tail('file-to-be-followed') # Register a callback function to be called when a new line is found in the followed file. # If no callback function is registerd, new lines would be printed to standard out. t.register_callback(callback_function) # Follow the file with 5 seconds as sleep time between iterations. # If sleep time is not provided 1 second is used as the default time. t.follow(s=5) '''# Author - Kasun Herath# Source - https://github.com/kasun/python-tailimport osimport sysimport timeimport reclass Tail(object): ''' Represents a tail command. ''' def __init__(self, tailed_file): ''' Initiate a Tail instance. Check for file validity, assigns callback function to standard out. Arguments: tailed_file - File to be followed. ''' self.check_file_validity(tailed_file) self.tailed_file = tailed_file self.callback = sys.stdout.write def follow(self, s=1): ''' Do a tail follow. If a callback function is registered it is called with every new line. Else printed to standard out. Arguments: s - Number of seconds to wait between each iteration; Defaults to 1. ''' with open(self.tailed_file) as file_: # Go to the end of file file_.seek(0,2) while True: curr_position = file_.tell() line = file_.readline() if not line: file_.seek(curr_position) time.sleep(s) else: #self.callback(line) if re.search("CHMOD",line) or re.search("UPLOAD",line): #修改主体部分 x = line.strip() x = x.split('"')[3] nx = x.split()[0] # commad s3cmd put file if os.path.isfile("/data/cifs"+nx): print "/data/cifs"+nx os.system("s3cmd --acl-public put /data/cifs%s s3://swq499809608.aws.com%s" %(nx,nx)) print ("s3cmd --acl-public put /data/cifs%s s3://swq499809608.aws.com%s" %(nx,nx)) elif re.search('zip',nx): try: os.system("s3cmd --acl-public put %s s3://swq499809608.aws.com%s" %(nx,nx.split('imguser')[1])) except: pass else: print 'no' #主体结束部分 def register_callback(self, func): ''' Overrides default callback function to provided function. ''' self.callback = func def check_file_validity(self, file_): ''' Check whether the a given file exists, readable and is a file ''' if not os.access(file_, os.F_OK): raise TailError("File '%s' does not exist" % (file_)) if not os.access(file_, os.R_OK): raise TailError("File '%s' not readable" % (file_)) if os.path.isdir(file_): raise TailError("File '%s' is a directory" % (file_))class TailError(Exception): def __init__(self, msg): self.message = msg def __str__(self): return 'yes',self.message.split('')
部分
主体
源码
动态
作者
功能
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
巨大网络技术有限公司
数据库版本不兼容948
用热企业网络安全自查方案
vpn服务器限速
日常有的网络安全防范
北京本地软件开发价格大全
如何导出数据库备份文件
虚拟币区块链软件开发设计
服务器显示时间
网络安全主题教育周
dna数据库在鉴证技术中的应用
我国高铁列车通信网络技术
以下哪一种是网络安全的解决方案
asp无法添加数据库
全新db2数据库操作
网页共用一个数据库怎么办
学校网络安全与信息通报机制
网络安全好句子短句
审核网络安全工作的核心
学软件开发要英语功底吗
黑盾系列网络安全产品
c++ 软件开发实例
什么单位需要做网络安全
无法连接到服务器(-15
中国铁路出版社网络技术与应用
贝莱德软件开发
网络安全事故会议纪要
高斯数据库的进程
叹服伴奏软件开发
架设vpn服务器软件