📜  Crontab - 运行带有参数的Python脚本

📅  最后修改于: 2022-05-13 01:54:30.301000             🧑  作者: Mango

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 还接受特殊字符来创建更复杂的时间表:

CharacterMeaning
CommaTo separate multiple values
HyphenTo indicate a range of values
AsteriskTo indicate all possible values
Forward slashTo indicate EVERY

要调度我们的脚本执行,我们需要在 crontab 文件中输入 crontab 调度表达式。为此,只需在终端中输入以下内容:

crontab -e

系统可能会提示您选择编辑器,选择 nano 并将以下行附加到打开的 crontab 文件的末尾:

其中$(USER)可以替换为您的用户名。保存更改并退出。这将安排我们的Python脚本每 2 分钟运行一次,使用1 2 3 4 5作为命令行参数,并将输出写入/home/$(USER)/ouput.txt