#!/usr/bin/python # encoding: utf8 # Author: zhangxi # Last modified: 2017/11/24 import os import json import time import datetime import pprint import pdb from optparse import OptionParser def interval_zip(interval, conf_file): dest_path = "" tmp_path = "" # interval = 1 with open(conf_file) as f: for line in f.readlines(): if line.startswith("upload_log_path"): dest_path = line[line.find("=")+1:].strip() if not dest_path.endswith('/'): dest_path+='/' elif line.startswith("tmp_log_path"): tmp_path = line[line.find("=")+1:].strip() else: pass while True: try: ''' try: with open(upload_pz) as f: for line in f.readlines(): start = line.find('interval":')+10 end = line.find(',"num') interval = int(line[start:end]) except Exception, e: pass #raise e # print interval ''' time_remaining = interval-time.time()%interval # print time_remaining time.sleep(time_remaining) # today = time.strftime('%Y-%m-%d',time.localtime(time.time())) # now_path = dest_path+today # now_path+="/" # cmd = 'mkdir -p %s; cd %s; gzip -q *; mv %s/* %s'%(now_path, tmp_path, tmp_path, now_path) # # print cmd # os.system(cmd) # l = os.listdir(tmp_path) l = tmp_path if len(l)>1: # st = l.sort(key=lambda fn: os.path.getmtime(tmp_path+"/"+fn) if not os.path.isdir(tmp_path+"/"+fn) else 0) latest = sorted([(x, os.path.getmtime(os.path.join(l,x))) for x in os.listdir(l) if os.path.isfile(os.path.join(l,x))], \ key=lambda i: i[1])[-1] # print ('last file is '+l[-1]) today = time.strftime('%Y-%m-%d',time.localtime(time.time())) now_path = dest_path+today now_path+="/" now_time = time.strftime('%H%M%S',time.localtime(time.time())) # print now_time # cmd = 'mkdir -p %s; cd %s; tar zcf %s/%s.tar.gz * --exclude=%s; rm `ls *|egrep -v %s`'\ # %(now_path, tmp_path, now_path, now_time, l[-1], l[-1]) #pdb.set_trace() cmd = 'mkdir -p %s; cd %s; count=`ls|grep .txt|wc -l`; if [[ $count -gt 1 ]]; then tar zcf %s/%s.tar.gz * --exclude=%s; rm `ls *|egrep -v %s`;fi;'\ %(now_path, tmp_path, now_path, now_time, latest[0], latest[0]) # print cmd os.system(cmd) except Exception, e: pass # print e if __name__ == '__main__': usage_info ="python %prog [options arg] \n" parser =OptionParser(usage=usage_info,version="version verifiy 1.0") parser.add_option("-i","--interval",dest="interval",default=5,help="interval of scanning upload file. Default is 5 seconds.") # parser.add_option("-u","--upload_pz",dest="upload_pz",default="/tmp/upload_pz/net_log_upload_pz.txt",help="upload_pz_path. Default file is /tmp/upload_pz/net_log_upload_pz.txt") parser.add_option("-c","--conf_file",dest="conf_file",default="/home/jcq/bin/sapp_se/djconf/comm_audit.conf",help="conf_path. Default file is /home/jcq/bin/sapp_se/djconf/comm_audit.conf") (options,args) =parser.parse_args() interval_zip(options.interval, options.conf_file)