通过 Crontab 执行 Python 脚本
通常情况下,我们发现自己处于需要自动化流程以提高效率和理智的情况。 它可以是任何事情,从定期向员工发送电子邮件到每三个月更新一次某些应用程序的许可证。
Crontab 派生自 Cron 表。 Cron 是 Unix、Solaris 和 Linux 操作系统提供的自动化实用程序,可帮助实现自动化。
在本文中,我们将探讨 Crontab 以及如何使用它来运行 Python 脚本。
Linux/Unix/Solaris 中的 Crontab
Cron 是一个守护进程,当系统从 /etc/init.d 脚本启动时运行。 如果需要,我们还可以使用 init 脚本或通过 crond 启动/重新启动或停止守护进程,crond 本质上是 Linux 及其其他版本中的命令服务。
Crontab 或 Cron 表是一个包含列表形式的无数命令的文件。 这些命令或 cron 条目设置为在特定时间运行。
此文件中的命令通常称为 cronjobsCrontabs,通常用于管理、维护或管理系统。 它们还可以用于其他定期需要的任务,例如备份。
每个用户都可以拥有自己的 Crontab。
每个 Crontab 文件都有五个字段,分别指定分钟、小时、月中的第几天(日期)、月、日,最后,所有这些后面都是应该在先前指定的时间执行的命令。
有效维护 Crontab 的一些技巧是:
- 插入一个空格来分隔每个字段。
- 插入逗号以分隔多个值。
-
插入连字符 (
-
) 以指定值范围。 -
插入星号 (
*
) 以包括该字段的所有可能值。 - 在行首使用井号 (#) 来添加注释或在文件中插入空行。
Linux/Unix/Solaris 中的 Cron 作业或 Cron 计划
Cron Job 或 Cron Schedule 是一组特定的指令或命令,用于指定执行命令的时间和日期。 一个 cron 表中可以有多个执行命令。
通过 Crontab 执行 Python 脚本
通过执行以下简单步骤,可以在 Crontab 的帮助下执行 Python 脚本:
- 查找或定义您希望执行的 Python 脚本。
-
在您要使用的终端中执行命令
crontab -e
。 -
现在,您需要按
i
进入编辑模式。 - 输入计划命令,您可以在其中指定要执行的 Python 脚本的路径。
- 您可以按退出按钮退出编辑模式。
-
使用命令
:wq
创建并编写一个 Crontab。
Crontab 的例子
以下是 Crontab 在各种情况下的一些示例:
-
每天在特定时间从计算机中的特定位置或路径删除一些临时文件:
30 18 * * * rm /home/someuser/tmp/*
-
每 7 天执行的一些命令:
0 0 */7 * * shell_command_here
- 每分钟在系统中执行一个脚本: ```bash
-
-
-
-
- cd/Users/name/Automation && /usr/bin/python testing_crontabs.py ``` 现在让我们创建一个我们自己的脚本并通过 Crontab 执行它。 以下是我们将在本文中使用的 Python 脚本:
-
-
-
示例代码:
#! /usr/bin/python3
import sys
from datetime import datetime
def main(args):
result = 1
for arg in args[1:]:
result *= int(arg)
print(f"Result: {result} on: {datetime.now()}.")
if __name__ == '__main__':
main(sys.argv)
输出:
现在,我们在我们选择的终端中执行命令 sudo chmod +x main.py
以使文件可执行。
现在,在终端中执行 crontab -e,当要求从提供的选项中选择一个编辑器时,我们为本文选择 nano 并添加以下 cron 命令:
*/2 * * * * /home/$(USER)/myscript.py 1 2 3 4 5 >> /home/$(USER)/outputfile.txt
我们需要用我们特定机器的用户名替换 USER。 保存并退出编辑器,我们的 Crontab 现在已经准备就绪并可以工作了。
我们怎么知道? 根据我们的 Crontab,脚本应该每两分钟运行一次。
相关文章
克隆 Git 存储库的 Python 方法
发布时间:2023/06/20 浏览次数:196 分类:Python
-
让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库
在 Python 中计算两个 GPS 点之间的距离
发布时间:2023/06/19 浏览次数:134 分类:Python
-
计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离
Python 中的 Verbose
发布时间:2023/06/19 浏览次数:70 分类:Python
-
在这个简短的指南中,我们将学习 verbose 以及如何在 Python 中实现它。Python 中的详细信息 详细模式是一种计算功能,也是许多计算机操作系统和编程语言中的通用概念。
Python 中的 Promise 系列
发布时间:2023/06/19 浏览次数:61 分类:Python
-
本篇文章将介绍如何用 Python 编写一系列 promise。 首先,我们将讨论 Python 中的异步编程。接下来,我们将讨论 Python 中的回调函数。
Python 中的队优先级列比较器
发布时间:2023/06/19 浏览次数:192 分类:Python
-
本文将研究使用 Python 开发自定义优先级队列。 除此之外,我们还将学习如何将自定义比较器函数与优先级队列一起使用。Python 中的优先级队列
为 Python 创建别名
发布时间:2023/06/19 浏览次数:194 分类:Python
-
在这种情况下,您决定保留两个版本的 Python。 在本文中,我们将学习如何在拥有两个 Python 版本的情况下创建别名。为 Python 创建别名
从 Python 使用 DLL 文件
发布时间:2023/06/19 浏览次数:60 分类:Python
-
本篇文章将介绍使用 Python 程序中的 DLL 文件。使用 ctypes 库从 Python 使用 DLL 文件 ctypes 是一个在 Python 中提供与 C 兼容的数据类型的外部函数库。
在 Python 中将数据类转换为 JSON
发布时间:2023/06/19 浏览次数:63 分类:Python
-
在本篇文章中,我们将了解 Python 如何支持 JSON 来为每个 JSON 根节点创建数据类。 我们还将学习 dataclass 作为 Python 字典的实现。在 Python 中将数据类转换为 JSON
Python Dict 与 Asdict
发布时间:2023/06/19 浏览次数:179 分类:Python
-
obj._dict_() 背后的概述至少比 dataclasses.asdict(obj) 快十倍。Python 3.7引入了dataclasses库,让我们可以制作专门用于数据存储的结构化类。