python - crontab模块设置linux定时任务

本文详细介绍如何使用Python-crontab模块在Linux中自动化设置定时任务。从安装模块到创建、查询、修改和删除任务,提供了丰富的代码示例,帮助读者轻松掌握Python-crontab的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。

但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决。

下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。

当当当,今天的主角上场:python-crontab模块。安装直接

$ pip install python-crontab

下面在脚本上就可以方便的设置计划任务了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

from crontab import CronTab

 

# 创建当前用户的crontab,当然也可以创建其他用户的,但得有足够权限

my_user_cron  = CronTab(user=True)

 

# 创建任务

job = my_user_cron.new(command='echo date >> ~/time.log')

 

# 设置任务执行周期,每两分钟执行一次

job.setall('*/2 * * * *')

 

# 当然还支持其他更人性化的设置方式,简单列举一些

job.minute.during(5,50).every(5)

job.hour.every(4)

job.day.on(456)

 

job.dow.on('SUN')

job.dow.on('SUN''FRI')

job.month.during('APR''NOV')

 

job.setall(time(102))

job.setall(date(200042))

job.setall(datetime(200042102))

 

# 同时可以给任务设置comment,这样就可以根据comment查询,很方便

job.set_comment("time log job")

 

# 根据comment查询,当时返回值是一个生成器对象,不能直接根据返回值判断任务是否#存在,如果只是判断任务是否存在,可直接遍历my_user_cron.crons

iter = my_user_cron.find_comment('time log job')

 

# 删除

objs = my_user_cron.find_comment('time log job')
if objs:
    for obj in objs:
        my_user_cron.remove(obj)
    my_user_cron.write()

# 同时还支持根据command和执行周期查找,基本类似,不再列举

 

# 任务的disable和enable, 默认enable

job.enable(False)

job.enable()

 

# 最后将crontab写入配置文件

my_user_cron.write()

 下面可通过命令查看,是否创建成功:

1

$ crontab -l

很方便吧,还有一些功能没有完全介绍,大家可以参考官方文档https://pypi.python.org/pypi/python-crontab

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值