如何用 crontab 实现 Python 定时任务
前言
说到定时任务,在生产中几乎不可避免。比如有个报表代码需要在凌晨生成,以便早上查看昨日的具体数据。实现定时任务的方法有很多,这里就来总结一下如何用 Linux crontab 实现 Python 定时任务。
Linux crontab 使用
直接使用 Linux 系统层的 crontab,它可以定期的执行我们的程序。
crontab 的语法简单: crontab [-u user] {-l | -r | -e}
-u user 是指设定指定 user 的时程表, 因为服务器不止有 root 用户,-u 参数即可指定用户。
-e: 该命令用来编辑 crontab 任务。
-l: 列出该用户所有的定时任务。
-r: 删除目前的定时任务。
而在我们编辑定时任务时,需要了解填写的任务格式,格式为:a1 a2 a3 a4 a5 {执行命令}
a1 表示分钟,a2 表示小时,a3 表示一个月的第几天,a4 表示月,a5 表示星期几。
我们用来表示该时间节点都要执行,比如每分钟都要执行,则 a1 编辑为
当表示为 A-B 比如 a1 编辑为 1-10,则表示第 1 到 10 分钟执行。
当表示为*/n 时,表示每隔多久执行一次,比如 a1 = * / 5 表示每隔 5 分钟执行一次。
当表示为 a,b,c 时,表示第 a,b,c 时间要执行,比如 a1 = 1,10,20 表示第 1、第 10、第 20 分钟都要执行。
常见的定时任务实例
比如我们有一个 Python 文件 a.py 路径为/data/,环境是 conda 环境 a_env 路径在~/conda/envs/a_env,下面来演示如何编写定时任务。
每分钟执行一次:
每天 7 点 20 执行一次:
每月 1 号和 15 号执行
注意:新创建的 cron 任务,不会立刻执行,至少要过 2 分钟后才可以,或者可以重启 cron 来执行。
小结
这篇总结了下 Linux crontab 的使用方法,我们在定时任务的设置时,可以选择 crontab 这一简单的方式来实现。
版权声明: 本文为 InfoQ 作者【芥末拌个饭吧】的原创文章。
原文链接:【http://xie.infoq.cn/article/622c2bc4e27c551548fb3a598】。文章转载请联系作者。
评论