Crontab - 运行带有参数的Python脚本
在使用Python自动化任务时,使用 crontab 调度Python脚本是基础。我们将看到如何调度Python脚本并传递必要的参数。
Cron 作业实用程序是 Unix 中基于时间的作业调度程序。它允许用户在给定的时间和日期运行文件。 crontab 是您想要定期运行的命令列表,也是用于管理该列表的命令的名称。
创建用于演示的Python脚本:
首先,让我们创建一个简单的脚本,我们将安排它每 2 分钟运行一次。下面是一个简单的脚本,它计算所有传递参数的乘积,并将它们与脚本运行的时间一起打印到 STDOUT。
Python
#! /usr/bin/python3
import sys
from datetime import datetime
def main(args):
ans = 1
for arg in args[1:]:
ans *= int(arg)
print("calculated result as: {} on: {} ".format(ans,
datetime.now()))
if __name__ == '__main__':
main(sys.argv)
注意: #!/usr/bin/python3 (指定脚本解释器的路径)是必要的,如果你想让脚本可执行。
假设我们已将此脚本保存为主目录下的 my_script.py,我们可以通过在终端中输入以下命令使其可执行:
$ sudo chmod +x my_script.py
我们可以测试我们的脚本是否正常工作。
./my_script.py 1 2 3 4 5
calculated result as: 120 on: 2021-07-01 12:19:48.856184
crontab 调度表达式有以下几个部分:
Crontab 还接受特殊字符来创建更复杂的时间表:Character Meaning Comma To separate multiple values Hyphen To indicate a range of values Asterisk To indicate all possible values Forward slash To indicate EVERY
要调度我们的脚本执行,我们需要在 crontab 文件中输入 crontab 调度表达式。为此,只需在终端中输入以下内容:
crontab -e
系统可能会提示您选择编辑器,选择 nano 并将以下行附加到打开的 crontab 文件的末尾:
*/2 * * * * /home/$(USER)/my_script.py 1 2 3 4 5 >> /home/$(USER)/output.txt
其中$(USER)可以替换为您的用户名。保存更改并退出。这将安排我们的Python脚本每 2 分钟运行一次,使用1 2 3 4 5作为命令行参数,并将输出写入/home/$(USER)/ouput.txt 。