Для тех кто использует Asterisk для построения колцентров..
Если вы ведете запись входящих звонков в очередях (asterisk: Queues), то рано или поздно встает вопрос об вменяемой организации нескольких десятков (может быть и сотен) тысяч файлов в нечто удобное для поиска и прочих манипуляций..
Я в свою очередь предлагаю хранить все файлы как дерево вида: YYYY/MM/DD/ , для сего написал небольшой скриптик на питоне..
'''
Created on 03.01.2011
@author: valor
'''
import time
import os
from shutil import move
class AstMonFLSorter:
store_root = "/raid/monitor/"
def __init__(self):
pass
def utc_get_date(self,utc):
return time.strftime("%Y:%m:%d", time.localtime(utc))
def main(self):
count = 0
for fname in os.listdir(self.store_root):
utc = fname[:10]
year = self.utc_get_date(float(utc))[:4]
month = self.utc_get_date(float(utc))[5:7]
day = self.utc_get_date(float(utc))[8:10]
curday = self.utc_get_date(time.time())[8:10]
if not os.path.isdir(self.store_root+year):
print ">>> create "+year+" folder"
os.mkdir(self.store_root+year)
if not os.path.isdir(self.store_root+year+"/"+month):
print ">> create "+month+" folder"
os.mkdir(self.store_root+year+"/"+month)
if not os.path.isdir(self.store_root+year+"/"+month+"/"+day):
print "> create "+day+" folder"
os.mkdir(self.store_root+year+"/"+month+"/"+day)
else:
if os.path.isfile(self.store_root+fname) and day != curday:
move(self.store_root+fname, self.store_root+year+"/"+month+"/"+day)
count +=1
print "=="+str(count)+"== moved file "+fname+" to > "+self.store_root+year+"/"+month+"/"+day
if __name__ == '__main__':
astmon = AstMonFLSorter()
astmon.main()
Вот как-то так.. Есть замечания или предложения, или может есть ошибки? Пишите все поправим..




Свежие комментарии