展会信息港展会大全

python脚本清除linux cron中过期的定时计划
来源:互联网   发布日期:2015-08-20 22:21:36   浏览:2224次  

导读: 由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期的,保留需要执行的。 以apache用户的cron文件为例,脚本内容如下: #!/usr/bin/...

由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样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中的内容如下:

当前系统时间为:

赞助本站

人工智能实验室

相关热词: python 脚本 清除 linux cron

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港