1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
网上脚本,我做的注释:
[root@localhost ~]
# vim clean_mon_mail.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import
os
import
time
import
datetime
class
umailmonmail:
def
__init__(
self
, mailpath):
#构造函数
self
.mailpath
=
mailpath
#给构造函数赋值
def
delmail(
self
):
#定义删除邮件的函数,接收构造函数传过来的参数
f
=
list
(os.listdir(
self
.mailpath))
#列出实例化的路径下面的文件
print
(
"%s\n 开始清理过期文件...."
%
self
.mailpath)
#打印出要清理的路径,并打印开始清理过期文件
for
i
in
range
(
len
(f)):
#len统计多少个文件,然后循环赋值给变量i。
maildate
=
os.path.getmtime(
self
.mailpath
+
f[i])
#获取每个文件的时间的时间,f[i]是获取列表相应下标的值。
mailtime
=
datetime.datetime.fromtimestamp(maildate).strftime(
'%Y-%m-%d'
)
#格式化时间
currdate
=
time.time()
#当前时间
num1
=
(currdate
-
maildate)
/
60
/
60
/
24
#当前时间减去文件时间,然后换成乘天。
if
num1 >
=
1
:
try
:
os.remove(
self
.mailpath
+
f[i])
#删除符合条件的文件,如果是目录会报错,不会删除
print
(u
"已删除文件:%s : %s"
%
(mailtime, f[i]))
except
Exception as e:
print
(e)
else
:
print
(
"......"
)
maildir
=
umailmonmail(
'/tmp2/'
)
#实例化umailmonmail类
maildir.delmail()
#运行类中的方法
print
(u
'过期文件已清理完毕:%s\n'
%
maildir.mailpath)
|
备注:如果要清理多个文件夹的,就再加最后这3行,然后改下变量。
运行脚本结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost ~]
# python clean_mon_mail.py
/tmp2/
开始清理过期文件....
已删除文件:2013-11-27 : CentOS-Base.repo
[Errno 21] Is a directory:
'/tmp2/.ICE-unix'
已删除文件:2016-01-18 : umail.repo
已删除文件:2016-05-10 : yum.log
已删除文件:2013-11-27 : CentOS-Debuginfo.repo
已删除文件:2012-11-05 : epel-testing.repo
已删除文件:2012-11-05 : epel.repo
已删除文件:2013-11-27 : CentOS-Media.repo
已删除文件:2013-11-27 : CentOS-Vault.repo
已删除文件:2016-05-10 : ks-script-awqwgJ.log
已删除文件:2016-05-10 : ks-script-awqwgJ
......
过期文件已清理完毕:
/tmp2/
|
本文转自 sailikung 51CTO博客,原文链接:http://blog.51cto.com/net881004/2052066,如需转载请自行联系原作者