关闭

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

发表于:2013-3-21 10:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:lover007    来源:51Testing软件测试网采编

  由于服务器需要定时的去执行一些任务,精确到月、日、时、分,这样cron文件中的条目就比较多了,单个的去删除比较麻烦,写了个脚本,去维护cron文件中的计划任务,删除已经过期的,保留需要执行的。

  以apache用户的cron文件为例,脚本内容如下:

  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3. import time 
  4. def del_cront(): 
  5.     f = '/var/spool/cron/apache' 
  6.     read = open(f,'r'
  7.     cront = read.readlines()#读取apache用户cron文件的内容 
  8.     read = open(f,'w'
  9.     read.write("")#清除当前文件的内容 
  10.     for line in cront: 
  11.         if '#' not in line: 
  12.             a = ' '.join(line.strip().split()[0:4])#截取cron中的月、日、时、分字段 
  13.             aa = str(time.localtime()[0]) + ':' + ':'.join(a.split()[::-1]) + ':00'#格式化截取到的时间字段为%Y:%m:%d:%H:%M:%S格式 
  14.             cront_time = time.mktime(time.strptime(aa, '%Y:%m:%d:%H:%M:%S'))#标准时间格式转化为时间戳 
  15.             print a,aa,cront_time 
  16.             now = time.time()#当前的时间的时间戳 
  17.             if now < cront_time: 
  18.                 read.write(line)#大于当前时间的任务回写到cron文件中,保留 
  19.         else
  20.             read.write(line)#注释之类的保留到文件中 
  21.     read.close 
  22. if __name__=="__main__"
  23.     del_cront()

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

  执行脚本截图如下:

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

  当前系统时间为:

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号