博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python删除指定目录下的过期文件
阅读量:6421 次
发布时间:2019-06-23

本文共 1601 字,大约阅读时间需要 5 分钟。

hot3.png

服务器的文件每天不断增加,有很多文件碎片,需要定时清理,但还需要保留5天前的数据文件,用linux命令操作 
find /data/log -ctime +5 | xargs rm -f

会对系统造成很大压力,文件数会很多的说...

所以决定写个脚本,用crontab定时调用,来处理该需求

'''Created on 2012-10-30@author: max1984'''import osimport sysimport timeclass DeleteLog:    def __init__(self,fileName,days):        self.fileName = fileName        self.days = days    def delete(self):        if os.path.isfile(self.fileName):            fd = open(self.fileName,'r')            while 1:                buffer = fd.readline()                if not buffer : break                if os.path.isfile(buffer):                    os.remove(buffer)            fd.close()        elif os.path.isdir(self.fileName):            for i in [os.sep.join([self.fileName,v]) for v in os.listdir(self.fileName)]:                print i                if os.path.isfile(i):                    if self.compare_file_time(i):                        os.remove(i)                elif os.path.isdir(i):                    self.fileName = i                    self.delete()    def compare_file_time(self,file):        time_of_last_access = os.path.getatime(file)        age_in_days = (time.time()-time_of_last_access)/(60*60*24)        if age_in_days > self.days:            return True        return Falseif __name__ == '__main__':    if len(sys.argv) == 2:        obj = DeleteLog(sys.argv[1],0)        obj.delete()    elif len(sys.argv) == 3:        obj = DeleteLog(sys.argv[1],int(sys.argv[2]))        obj.delete()    else:        print "usage: python %s listFileName|dirName [days]" % sys.argv[0]        sys.exit(1)

转载于:https://my.oschina.net/max1984/blog/86132

你可能感兴趣的文章
一例HP ADG数据恢复成功(8×73GB SCSI)
查看>>
虚拟化系列-Citrix XenServer 6.1 XenMotion与HA
查看>>
《3D数学基础》2.1 矩阵基本概念、2.2 矩阵的数乘和加减法、2.3 方阵
查看>>
TFS创建团队项目(三)
查看>>
对发展的一点小感想
查看>>
示例化讲解RIP路由更新机制
查看>>
eclipse不能自动编译工程的解决方法
查看>>
Powershell管理系列(九)删除Exchange用户邮箱中多余的电子邮件地址
查看>>
Swt/Jface进度条
查看>>
.NET建议使用的大小写命名原则
查看>>
Git:错误:error:src refspec master does not match any
查看>>
SSIS 数据类型和类型转换
查看>>
Oracle数据库“Specified cast is农田valid”
查看>>
数据层新思路,写数据库无关的数据层 ORM在数据库内做更为合适
查看>>
armv8(aarch64)linux内核中flush_dcache_all函数详细分析【转】
查看>>
房地产英语 Real estate词汇
查看>>
python接口自动化测试(八)-unittest-生成测试报告
查看>>
第 26 章 MySQL
查看>>
How far away ?(DFS)
查看>>
C#中三种截屏方式总结
查看>>