使用Plan模块在Python中编写crontab文件


首先,让我们了解一下crontab文件是什么。Cron是一个软件实用程序,可以帮助我们在基于Unix的系统上安排任务。基本上,您可以定期运行分配的任务,例如,在一天结束时进行自动系统备份,在特定时间自动关机或将模式设置为勿扰等等。

cron中的这些“任务”通常定义在一个名为crontab的文件中,该文件基本上是一个包含要执行的命令的文本文件。

现在让我们学习如何使用plan模块在Python中编写这些crontab文件!

入门

在进入实现部分之前,让我们首先了解Cron语法。Cron语法由5个不同的字段组成,这些字段用空格分隔。

Minute Hour Day Month Day_of_week
Minute (0-59), Hour (0-23), Day (1-31), Month (1-12) and Day of week (0-6). 

您还可以使用逗号分隔值并包含多个值。使用连字符来验证范围。星号表示所有可能的值,最后斜杠表示所有内容。

例如,`0 15 3,6 * *`告诉cron在每个月的第3天和第6天下午3点运行任务。

安装Python Plan模块

好了,现在您了解了cron的工作原理,让我们开始安装所需的模块plan。

此模块没有预先打包在Python中。因此,我们将使用pip包管理器下载并安装它。

要安装plan模块,请使用以下命令:

pip install plan

现在,我们可以使用以下命令将其导入到我们的脚本中:

from plan import Plan

您已准备好开始创建cron文件了。

使用plan模块创建crontab

让我们从为将保存一组cron的类创建实例开始。

cron = Plan()

接下来,您可以继续定义要自动运行的函数、脚本或命令。

让我们假设我们有一个脚本,每5小时自动发送待办事项提醒邮件。假设此脚本位于“/projects/scripts/automation.py”。

我们还希望它每4小时打印一次“hello”。我们该如何做到这一点呢?

我们有不同的方法可以做到这一点。

我们可以使用`cron.command()`函数或`cron.script()`函数。这两个命令都有助于实现我们的目标。

cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")

现在,让我们在主函数中使用`cron.run()`命令运行这些命令。

If __name__ == "__main__":
	cron.run()

就是这样!您现在已经自动化了步骤,并定义了脚本运行的固定时间。

示例

这是完整的程序:

from plan import Plan

cron = Plan()
cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")
If __name__ == "__main__":
	cron.run()

结论

您现在了解了如何在固定时间自动运行脚本。使用它,您可以自动化项目中的拼写检查,在特定时间自动化系统备份,甚至每天获取项目的覆盖率报告。

更新于:2023年8月31日

82 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.