LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > 脚本编程 >

Python脚本清除linux cron中过期的定时计划

时间:2013-03-16 10:21来源:未知 编辑:admin 点击:
由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期
    由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样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中的内容如下:

    当前系统时间为:

转载请保留固定链接: https://linuxeye.com/program/1363.html

------分隔线----------------------------
标签:Pythoncron
栏目列表
推荐内容