为了账号安全,请及时绑定邮箱和手机立即绑定

如何迭代所有 crontab 作业并打印作业的计划、命令和注释

如何迭代所有 crontab 作业并打印作业的计划、命令和注释

偶然的你 2023-07-27 15:59:13
我有以下 .py 代码from crontab import CronTab...searchResultsList = cron.find_command('bar')for eachJob in searchResultsList:    print("Found this job", eachJob.command, eachJob.comment)当我观察 时crontab -l,我可以看到 .py 正在找到它应该找到的作业,但是如何让 .py 程序访问每个作业的调度规则(*/10 2-4 0 4 *)?eachJob.rules类似或 的东西eachJob.schedule。
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

问题

访问每个 crontab 作业的 cron 表达式(计划)。

解决方案

有多种解决方案,具体取决于您接下来要使用 cron 表达式执行的操作。

1. 在 Python 之外,使用grep

crontab -l | grep 'bar'

结果会是这样的:

0 10 * * * bash bar.sh
0 23 * * * bash bar.sh

2. 在 Python 中,坚持使用python-crontab

eachJob2.1迭代searchResultsList时 可以打印:

for eachJob in searchResultsList:
    print("Found this job", eachJob)

结果会是这样的:

Found this job  0 10 * * * curl -X GET https://maker.ifttt.com/trigger/event/with/key
Found this job  0 23 * * * curl -X GET https://maker.ifttt.com/trigger/event/with/key

2.2 如果你想单独使用 'python-crontab' 访问调度规则,你可以这样做:

for eachJob in searchResultsList:
    print(eachJob[0], eachJob[1], eachJob[2], eachJob[3], eachJob[4])

结果会是这样的:

0 10 * * *
0 23 * * *


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信