由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期的,保留需要执行的。
    以apache用户的cron文件为例,脚本内容如下:
  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3.  
  4. import time 
  5.  
  6. def del_cront(): 
  7.     f = '/var/spool/cron/apache' 
  8.     read = open(f,'r'
  9.     cront = read.readlines()#读取apache用户cron文件的内容 
  10.     read = open(f,'w'
  11.     read.write("")#清除当前文件的内容 
  12.     for line in cront: 
  13.         if '#' not in line: 
  14.             a = ' '.join(line.strip().split()[0:4])#截取cron中的月、日、时、分字段 
  15.             aa = str(time.localtime()[0]) + ':' + ':'.join(a.split()[::-1]) + ':00'#格式化截取到的时间字段为%Y:%m:%d:%H:%M:%S格式 
  16.             cront_time = time.mktime(time.strptime(aa, '%Y:%m:%d:%H:%M:%S'))#标准时间格式转化为时间戳 
  17.             print a,aa,cront_time 
  18.             now = time.time()#当前的时间的时间戳 
  19.             if now < cront_time: 
  20.                 read.write(line)#大于当前时间的任务回写到cron文件中,保留 
  21.         else
  22.             read.write(line)#注释之类的保留到文件中 
  23.     read.close 
  24.  
  25. if __name__=="__main__"
  26.     del_cront() 
    执行脚本前文件/var/spool/cron/apache中的内容如下:

    执行脚本截图如下:

    执行完脚本文件/var/spool/cron/apache中的内容如下:

    当前系统时间为: