python 定时任务 crontab使用
编写python需要运行的定时脚本: a.py然后编写定时任务脚本如下:b.py#!/usr/bin/python# -*- coding: UTF-8 -*-from crontab import CronTab# 创建linux系统当前用户的crontab,当然也可以创建其他用户的,但得有足够权限,如:user='root'cron_manager= C...
编写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)