如何用crontab实现Python定时任务
【摘要】 说到定时任务,在生产中几乎不可避免。比如有个报表代码需要在凌晨生成,以便早上查看昨日的具体数据。实现定时任务的方法有很多,这里就来总结一下如何用Linux 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 {执行命令}
* * * * *
- - - - -
| | | | |
| | | | ------ 星期中星期几 (0 - 6) (从周日开始算)
| | | ----------- 月份 (1 - 12)
| | ---------------- 一个月中的第几天 (1 - 31)
| --------------------- 小时 (0 - 23)
-------------------------- 分钟 (0 - 59)
- 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,下面来演示如何编写定时任务。
- 每分钟执行一次:
* * * * * ~/conda/envs/a_env/bin/python /data/a.py
- 每天7点20执行一次:
20 7 * * * ~/conda/envs/a_env/bin/python /data/a.py
- 每月1号和15号执行
0 0 1,15 * * ~/conda/envs/a_env/bin/python /data/a.py
注意:新创建的 cron 任务,不会立刻执行,至少要过 2 分钟后才可以,或者可以重启 cron 来执行。
小结
这篇总结了下Linux crontab的使用方法,我们在定时任务的设置时,可以选择crontab这一简单的方式来实现。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)