Python tail 实现S3 动态上传
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本文源码转至:https://github.com/kasun/python-tail 感谢作者, 稍加修改,实现了文件动态上传的功能一: 主体执行部分[root@linux219 base]# ca
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
红外谱图数据库哪里有免费的
pcie4.0 服务器
网络安全防范最新做法
海南金税盘安全服务器地址
传奇私服选择服务器
迷美剧软件开发
网络安全日志告警
java注册数据输入数据库
软件开发mr.yora
网络安全承诺书所在ip
重庆云服务器ecs 虚拟主机
甘肃仓储生鲜配送软件开发
韩荣锋网络安全
华软软件学院网络技术学
家用电脑如何做服务器系统
UAP元数据库开发
高校网络安全实验室厂商
华为软件开发测试最新完整版
git服务器管理页面
洛杉矶鲨鱼服务器
虹口区专业性软件开发包括
数据库有没有操作系统
武汉光学系统设计软件开发
小米路由器服务器主机名是什么
网络安全实验平台解题
网络安全所需设备
软件开发 人月 价格
唐软网络技术信息有限公司
惠普580g9服务器安全模
广州网络安全实验室