keepy:自动删除过期文件(夹)

2020年2月7日 / 134次阅读 / Last Modified 2020年11月9日
开源项目

为需要全自动运行的服务器开发了一款小工具,keepy,可以实现自动删除过期文件或文件夹的功能。

比如网站每天产生的log文件,可能只希望保留最近18个月的,每天自动备份的数据库文件,可能只需要保留最近15天的,其它过期的文件,全部自动删除。

定时运行keepy,就可以实现全自动删除任何过期文件或文件夹,永远只保留自己需要的时间段的文件,不用担心文件越来越多,服务器因为硬盘被占满而影响运行。

keepy项目地址

https://github.com/xinlin-z/keepy

keepy使用说明

help info有使用示例,这是各位同学clone项目后的第一个动作:

$ python3 keepy.py -h

keepy会要求指定一个路径,一个文件(夹)名的pattern(正则表达式),一个保留时间范围。然后keepy会找出所有符合删除条件的文件,最后在执行删除前,让你确认!keepy的运行原理,就是在指定的路径中搜索(非递归)符合pattern(代码中使用re.search进行匹配)和不在时间范围的文件!时间范围的确定,使用文件(夹)的mtime属性。

只保留最近18个月的log文件:

$ python3 keepy.py -p path --refile ^www.access.log_ --month 18

log文件的名称都是 www.access.log_ 开始,因为用此字符串来作为pattern。--month 18表示保留最近18个月的文件,如果算上当前这个月,就是19个月!

只保留最近15天的db备份文件:

$ python3 keepy.py -p path --refile _pynote.db.gzip$ --day 15

--day,--month和--year均可以配置0,这表示只保留当天,当月和当年的文件!

自动输入Yes(-y选项):

$ python3 keepy.py -p path -y --refolder pattern --day 90

--refolder表示对文件夹进行操作。--refile和--refolder这两个命令行参数互斥。

V0.04版本新增 --last N参数,保留最后的N个文件(夹):

$ python3 keepy.py -p path --refile pattern --last N

注意:当N==0时,keepy会删除全部匹配的文件(夹)!

keepy版本

2020年10月25日,V0.04

  • 增加 --last N 配置参数,可实现删除全部的功能

2020年7月9日,V0.03

  • 增加--refolder参数
  • 修改-f参数为--refile
  • 优化help信息

2020年3月7日,V0.02

  • 修改 -a 到 -p,可输入一个相对路径

2020年2月9日, V0.01

  • 第1个版本

-- EOF --

本文链接:https://www.pynote.net/archives/1797

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top