python脚本清除linux cron中过期的定时计划
由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期的,保留需要执行的。
以apache用户的cron文件为例,脚本内容如下:
#!/usr/bin/env python
# -- coding: utf-8 --
import time
def delcront():
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格式
cronttime = time.mktime(time.strptime(aa, '%Y:%m:%d:%H:%M:%S'))#标准时间格式转化为时间戳
print a,aa,cronttime
now = time.time()#当前的时间的时间戳
if now < cronttime:
read.write(line)#大于当前时间的任务回写到cron文件中,保留
else:
read.write(line)#注释之类的保留到文件中
read.close
if __name=="__main":
del_cront()
执行脚本前文件/var/spool/cron/apache中的内容如下:
执行脚本截图如下:
执行完脚本文件/var/spool/cron/apache中的内容如下:
当前系统时间为: