由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期的,保留需要执行的。
以apache用户的cron文件为例,脚本内容如下:
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import time
- def del_cront():
- f = '/var/spool/cron/apache'
- read = open(f,'r')
- cront = read.readlines()#读取apache用户cron文件的内容
- read = open(f,'w')
- read.write("")#清除当前文件的内容
- for line in cront:
- if '#' not in line:
- a = ' '.join(line.strip().split()[0:4])#截取cron中的月、日、时、分字段
- aa = str(time.localtime()[0]) + ':' + ':'.join(a.split()[::-1]) + ':00'#格式化截取到的时间字段为%Y:%m:%d:%H:%M:%S格式
- cront_time = time.mktime(time.strptime(aa, '%Y:%m:%d:%H:%M:%S'))#标准时间格式转化为时间戳
- print a,aa,cront_time
- now = time.time()#当前的时间的时间戳
- if now < cront_time:
- read.write(line)#大于当前时间的任务回写到cron文件中,保留
- else:
- read.write(line)#注释之类的保留到文件中
- read.close
- if __name__=="__main__":
- del_cront()
执行脚本前文件
/var/spool/cron/apache中的内容如下:
执行脚本截图如下:
执行完脚本文件
/var/spool/cron/apache中的内容如下:
当前系统时间为:
本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/1154041,如需转载请自行联系原作者