Python tail 实现S3 动态上传
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本文源码转至:https://github.com/kasun/python-tail 感谢作者, 稍加修改,实现了文件动态上传的功能一: 主体执行部分[root@linux219 base]# ca
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
数据库取消自动关闭
租流量服务器
狄子轩软件开发
操作数据库事务
客户机和服务器工作模式
数据库筛选时间
易到服务器
服务器环境管理系统docker
网络技术公司服务费
软件系统网络安全排查
asp数据库连接不上
socket服务器编码
网络安全技术与应用收录号
网络安全测评河南
sql数据库去重统计总量
安徽pdu服务器专用电源哪家强
网络安全朗诵
企业服务器架构图
服务器做家用机
58同城服务器累趴下了
vba软件开发的软件
民政局网络安全讲座
石嘴山软件开发网上价格
机房服务器托管有啥证书
圆点网络技术深圳
arcgis数据库按县域分割
数据库日志还原
php中使用什么软件建立数据库
sas 建立数据库
韩国服务器搭配