使用Plan模块在Python中编写crontab文件
首先,让我们了解什么是crontab文件。Cron是一种帮助我们在基于Unix的系统上安排任务的软件实用程序。因此,您将能够定期运行分配的任务,例如每天结束时自动系统备份,自动关闭或在特定时间设置DND模式等等。
cron中的这些“任务”通常在一个称为crontab的文件中定义,它基本上是一个包含要执行的命令的文本文件。
现在让我们学习如何使用Python的plan模块编写这些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()
结论
您现在知道如何在固定时间自动运行脚本了。使用这个方法,您可以自动化项目中的拼写检查,定时进行系统备份,甚至每天获取项目的覆盖报告。