Asterisk — укладываем фалики по полочкам.

Для тех кто использует Asterisk для построения колцентров..

Если вы ведете запись входящих звонков в очередях (asterisk: Queues), то рано или поздно встает вопрос об вменяемой организации нескольких десятков (может быть и сотен) тысяч файлов в нечто удобное для поиска и прочих манипуляций..

Я в свою очередь предлагаю хранить все файлы как дерево вида: YYYY/MM/DD/ , для сего написал небольшой скриптик на питоне..

#!/usr/bin/env python
'''
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()

Вот как-то так.. Есть замечания или предложения, или может есть ошибки? Пишите все поправим..

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>