/var/spool/asterisk/monitor是整个硬盘,所以我只需要分类.
#coding:utf-8
#
#author:llc_xyz@qq.com
#desc: 将录音文件归类备份.
#
# MONITOR_DIR :录音文件存放路径.
# BACKUP_DAYS :文件创建离当前时间间隔. 归类备份BACKUP_DAYS之前的文件.
#
import os,sys
import os.path
import datetime
MONITOR_DIR="/var/spool/asterisk/monitor"
BACKUP_DAYS = 30
def backup():
for file in os.listdir(MONITOR_DIR):
try:
filename = "%s/%s"%(MONITOR_DIR,file)
if not filename.endswith(".mp3"):
continue
statinfo = os.stat(filename)
create_time =datetime.datetime.fromtimestamp(statinfo.st_ctime)
now = datetime.datetime.now()
dstdir = "%s/backup_%s_%s/"%(MONITOR_DIR,create_time.strftime("%Y"),create_time.strftime("%m"))
if not os.path.exists(dstdir):
os.mkdir(dstdir)
#just copy the file created at 30 days before.
#copy mp3 and relink.
if (now - create_time).days >=BACKUP_DAYS and file.endswith(".mp3"):
dstfile = "%s/%s"%(dstdir,file)
if not os.path.exists(dstfile):
os.system(" mv -f %s %s "%(filename,dstdir))
print "move [%s] to [%s]"%(filename,dstdir)
os.system(" ln -sf %s %s "%(dstfile,"%s/%s"%(MONITOR_DIR,file.replace(".mp3",".wav") )))
except:
print "excepitons occured:%s,%s"%(sys.exc_info()[0],sys.exc_info()[1])
print 'backup finished'
if __name__ == "__main__":
backup()