编写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脚本

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐