ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python编程之定时任务(crontab)详解

2022-05-11 11:34:51  阅读:177  来源: 互联网

标签:Python 任务 CronTab cron job 详解 crontab user


引言

 python-crontab是python模块,提供了对cron任务的访问,并使得我们可以通过python对crontab文件进行修改。

安装

pip install python-crontab

注意:如果在使用CronTab的时候报错,报错信息为 got an unexpected keyword argument 'user' 可能是库安装错了,应该安装python-crontab而不是crontab。

使用案例

  • 增加crontab任务,一般有两种方式
from crontab import CronTab

# 方法一

# 创建cron访问
cron = CronTab(user='root')

# 增加新作业
job = cron.new(command='echo hello_world')

# 每一分钟执行一次
job.minute.every(1)

# 写入作业
cron.write()

# 方法二
with CronTab(user='root') as cron:

    job = cron.new(command='echo hello_world')

    job.minute.every(1)

print('cron.write() was just executed')

 

  • 访问crontab可以通过五种方式实现
from crontab import CronTab

# 下述三种方法只能在Unix上使用

# 不会从任何用户加载任何内容
empty_cron = CronTab()

# 从当前用户加载
my_user_cron = CronTab(user=True)

# 从$username加载
users_cron = CronTab(user='username')

# 可适用于window

# 从文件中加载
file_cron = CronTab(tabfile='filename.tab')

# 使用字符串变量作为crontab
mem_cron = CronTab(tab="""* * * * * command""")

 

  • 设置作业时间
from crontab import CronTab


cron = CronTab(user=True)

job = cron.new(command='echo hello world')


# 每两分钟运行一次
job.minute.every(2) # Set to */2 * * * *

# 每两小时运行一次
job.hour.every(2)    # Set to * */2 * * *

# 每两天运行一次
job.day.every(2)     # Set to * * */2 * *

# 每天的早上2点执行
job.hour.on(2)        # Set to * 2 * * *

# 每周日执行
job.dow.on('SUN') 

# 每周日、周五执行
job.dow.on('SUN', 'FRI')

# 四月到11月期间执行
job.month.during('APR', 'NOV')

# 每两个月的2号到4号的早上10:02执行
job.setall(2, 10, '2-4', '*/2', None)  # Set to 2 10 2-4 */2 *

 

  •  删除crontab任务
# 删除一个任务

cron.remove(job)


# 删除多个任务

cron.remove_all(comment='LoveFishO')

cron.remove_all('echo')

cron.remove_all()

 

  • 获取修改任务的命令或注释
# 获取任务的命令或注释

command = job.command
comment = job.comment

# 修改任务的命令或注释

job.set_command("echo LoveFishO")
job.set_comment("LoveFishO")

 

  • 写入任务
# 把任务写入系统
cron.write()

# 把任务写入文件
cron.write( 'filename.tab' )

# 把任务写入当前用户的定时任务中
cron.write_to_user(user=True)

# 把任务写入特定用户的定时任务中
cron.write_to_user(user='LoveFishO')

 

Reference

python-crontab官方文档

 

标签:Python,任务,CronTab,cron,job,详解,crontab,user
来源: https://www.cnblogs.com/lovefisho/p/16252176.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有