详解使用python crontab设置linux定时任务

 更新时间:2016年12月08日 08:20:30   作者:老瘦家的儿子  
本篇文章主要介绍了使用python crontab设置linux定时任务,具有一定的参考价值,有需要的可以了解一下。

熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。

但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿)。

下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。

当当当,今天的主角上场:python-crontab模块。安装直接

$ pip install python-crontab

下面在脚本上就可以方便的设置计划任务了

from crontab import CronTab

# 创建当前用户的crontab,当然也可以创建其他用户的,但得有足够权限

my_user_cron = CronTab(user=True)

# 创建任务

job = my_user_cron.new(command='echo date >> ~/time.log')

# 设置任务执行周期,每两分钟执行一次

job.setall('*/2 * * * *')

# 当然还支持其他更人性化的设置方式,简单列举一些

job.minute.during(5,50).every(5)

job.hour.every(4)

job.day.on(4, 5, 6)

job.dow.on('SUN')

job.dow.on('SUN', 'FRI')

job.month.during('APR', 'NOV')

job.setall(time(10, 2))

job.setall(date(2000, 4, 2))

job.setall(datetime(2000, 4, 2, 10, 2))

# 同时可以给任务设置comment,这样就可以根据comment查询,很方便

job.set_comment("time log job")

# 根据comment查询,当时返回值是一个生成器对象,不能直接根据返回值判断任务是否#存在,如果只是判断任务是否存在,可直接遍历my_user_cron.crons

iter = my_user_cron.find_comment('time log job')

# 同时还支持根据command和执行周期查找,基本类似,不再列举

# 任务的disable和enable, 默认enable

job.enable(False)

job.enable()

# 最后将crontab写入配置文件

my_user_cron.write() 

下面可通过命令查看,是否创建成功:

$ crontab -l

 很方便吧,还有一些功能没有完全介绍,大家可以参考官方文档https://pypi.python.org/pypi/python-crontab

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Python如何获取和理用户的连续输入

    详解Python如何获取和理用户的连续输入

    这篇文章主要为大家详细介绍了如何在 Python 中获取和处理用户的连续输入,包括基本的输入方法、输入验证、异常处理以及一些常见的应用场景,感兴趣的可以了解下
    2024-03-03
  • python自定义线程池控制线程数量的示例

    python自定义线程池控制线程数量的示例

    今天小编就为大家分享一篇python自定义线程池控制线程数量的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • numpy.ndarray.flatten()函数的具体使用

    numpy.ndarray.flatten()函数的具体使用

    本文主要介绍了numpy.ndarray.flatten()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • OpenCV图像卷积之cv.filter2D()函数详解

    OpenCV图像卷积之cv.filter2D()函数详解

    在其官方文档中,filter2D()函数在掩模板介绍中一笔带过,我认为该函数应该进行详细介绍,下面这篇文章主要给大家介绍了关于OpenCV图像卷积之cv.filter2D()函数的相关资料,需要的朋友可以参考下
    2022-09-09
  • python使用ctypes调用扩展模块的实例方法

    python使用ctypes调用扩展模块的实例方法

    在本篇文章里小编给大家整理的是一篇关于python使用ctypes调用扩展模块的实例方法内容,需要的朋友们可以学习参考下。
    2020-01-01
  • Python获取脚本所在目录的正确方法

    Python获取脚本所在目录的正确方法

    这篇文章主要介绍了Python获取脚本所在目录的正确方法,需要的朋友可以参考下
    2014-04-04
  • python如何处理matlab的mat数据

    python如何处理matlab的mat数据

    这篇文章主要介绍了python如何处理matlab的mat数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python HTML解析模块HTMLParser用法分析【爬虫工具】

    Python HTML解析模块HTMLParser用法分析【爬虫工具】

    这篇文章主要介绍了Python HTML解析模块HTMLParser用法,结合实例形式分析了HTMLParser模块功能、常用函数及作为爬虫工具相关使用技巧,需要的朋友可以参考下
    2019-04-04
  • 详解用python实现爬取CSDN热门评论URL并存入redis

    详解用python实现爬取CSDN热门评论URL并存入redis

    这篇文章主要介绍了详解用python实现爬取CSDN热门评论URL并存入redis,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python+splinter实现12306网站刷票并自动购票流程

    python+splinter实现12306网站刷票并自动购票流程

    这篇文章主要为大家详细介绍了python+splinter实现12306网站刷票并自动购票流程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09

最新评论