python 定时任务 crontab使用
·
编写python需要运行的定时脚本: a.py
然后编写定时任务脚本
如下:b.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from crontab import CronTab
# 创建linux系统当前用户的crontab,当然也可以创建其他用户的,但得有足够权限,如:user='root'
cron_manager = CronTab(user=True)
# 创建任务 指明运行python脚本的命令(crontab的默认执行路径为:当前用户的根路径, 因此需要指定绝对路径)
# TODO 环境不一样,要配置绝对路径
job = cron_manager.new(command='python /Users/zhangfahui/workspace/web_backend/scripts/scirpy_move_early_warn_status.py')
# 设置任务执行周期,每两分钟执行一次
# job.setall('*/2 * * * *')
job.setall('0 8 * * *')
# 将crontab写入linux系统配置文件
cron_manager.write()
按理来说,现在就可以定时运行了。方法是:直接运行上面的b.py即添加。如需要修改crontab -e 查看crontab -l
查看当前用户的定时任务
[oracle@localhost ~]$ crontab -l
编辑当前用户的定时任务
可以在编辑状态修改、删除、新增一些定时任务。注释一般用#
[oracle@localhost ~]$ crontab -e
解析crontab 文件中每个条目中各个域的意义和格式:
第一列 分钟: 1——59
第二列 小时: 0——23
第三列 日 : 1——31
第四列 月 : 1——12
第五列 星期: 星期0——6(0表示周天,1表示周一。。。)
第六列 要运行的任务命令(0表示键盘输入;1表示标准输出;2表示错误输出)默认值为1
前面五列有四种写法:
* 表示第几分钟(小时/日/月/星期)执行一次 ;
*/n 表示每n分钟(小时/日/月/星期)执行一次;
T1-T2 表示从T1到T2分钟(小时/日/月/星期)要执行任务;
a,b,c 表示a,b,c分钟(小时/日/月/星期)分别执行一次;
第六列:2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件test.txt。&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。
由于要切换到虚拟环境运行。故写sh脚本:
#!/usr/bin/env bash
shdir=`pwd` //当前路径
cd ..
source venv/bin/activate //切换环境
python ${shdir}/crontab_scripy.py //运行脚本
source 切换虚拟环境,
在虚拟环境下:切换到指定目录,python执行下脚本
shell脚本
更多推荐



所有评论(0)