CRM和数据平台营销工具

了解和使用 Cron:安排作业的综合指南

克龙, 短缺 命令在线运行,是类 Unix 操作系统中功能强大的基于时间的作业调度程序。 期限 cron的 是一个文字游戏 克罗诺斯 or CHRONOS,在希腊神话中代表时间。 基于时间的作业调度程序的名称 cron 反映了其在特定时间或间隔调度和执行任务的功能,使其适合参考神话中的时间概念。

Cron 允许您自动执行重复任务、按特定时间间隔执行脚本并保持系统效率。 这份综合指南将引导您了解有关 cron 的所有信息,从安装到使用、关键词汇和实际代码示例。

目录

  1. 什么是克朗?
  2. 安装计划任务
  3. 基本概念和术语
  4. 定时语法
  5. 实例和用例
  6. 常见陷阱和最佳实践
  7. 其他 cron 资源

什么是Cron?

Cron 是一个在基于 Unix 的系统(包括 Linux 和 macOS)上运行的守护进程(后台进程)。 其主要目的是自动执行计划任务。 这些任务的范围从简单的脚本到系统维护和备份。

安装计划任务

在大多数类 Unix 系统中,cron 是预先安装的。 您可以通过打开终端并输入以下内容来检查其可用性:

crontab -e

如果此命令打开 cron 表编辑器,则表明您已安装 cron。 如果没有,您可以使用系统的包管理器安装它。 例如,在 Ubuntu 上,您可以使用:

sudo apt-get install cron

Cron 概念和术语

在深入了解 cron 的用法之前,让我们先了解一些基本概念和术语:

Cron图说明
  • crontab中: 短缺 cron 表,它是一个包含用户计划任务列表的文件。
  • 的cronjob:计划在特定时间运行的单个任务或命令。
  • 字段:每个 cronjob 有五个字段定义作业何时运行:
    • 分钟(0-59)
    • 小时 (0-23)
    • 每月的某天 (1-31)
    • 月 (1-12)
    • 星期几(0-7,其中 0 和 7 都代表星期日)

定时语法

理解 crontab 条目的语法至关重要。 它遵循以下模式:

* * * * * command-to-be-executed

以下是您可以插入到 cron 作业中的注释说明:

# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php

每个星号 (*) 代表 cron 表达式中的一个字段。 例如,要在每天下午 3:30 安排作业,您可以使用:

30 15 * * * command-to-be-executed

Cron 示例和用例

让我们探讨一些实际示例来说明 cron 的用法:

  • 每天运行脚本: 要每天午夜执行脚本,您可以使用:
0 0 * * * /path/to/script.sh
  • 每小时运行一个脚本: 对于每小时任务,请使用:
0 * * * * /path/to/script.sh
  • 每周备份: 要安排每周日凌晨 2 点进行备份,请使用:
0 2 * * 0 /path/to/backup-script.sh
  • 在特定月份运行任务: 要仅在一月和七月的上午 8:30 运行作业:
30 8 * 1,7 * /path/to/script.sh

Cron 陷阱和最佳实践

  • 环境变量:确保您的 cron 作业设置了必要的环境变量,因为 cron 作业不会继承 shell 的环境变量。
  • 权限: 确保将脚本文件的权限设置为可执行。 每次我重新保存脚本时,我都会发现需要重新设置我的权限!
  • 路径变量:在 cron 作业中指定可执行文件和脚本的完整路径,以避免相对路径出现问题。
  • 测试:在设置关键的 cron 作业之前,在安全的环境中对其进行测试,以确保它们按预期工作。
  • 记录:将 cron 作业的输出重定向到日志文件,以跟踪其执行情况和任何潜在错误。
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1

这个 cron 作业运行一个脚本 /path/to/script.sh 每天午夜,脚本生成的输出(stdout 和 stderr)会附加到日志文件中

/path/to/cron.log。 这是捕获并记录 cron 作业的输出以进行监控和故障排除的常见做法。 让我们分解一下这个特定的 cron 作业语法:

  • *0 0 * * *: 这部分定义了 cron 作业何时运行的时间表。 在本例中,它计划在每天午夜(0 点过 0 分钟)运行。
  • /path/to/script.sh:这是 cron 作业运行时要执行的命令或脚本。 此示例显示的脚本位于 /path/to/script.sh.
  • >> /path/to/cron.log:这部分将 cron 作业的标准输出(stdout)重定向到名为的日志文件 cron.log 位于 /path/to/。 该 >> 运算符将输出附加到日志文件,因此如果该文件不存在,则会创建该文件;如果该文件已存在,则输出将添加到文件末尾。
  • 2>&1:这用于将标准输出(stdout)和标准错误(stderr)重定向到同一日志文件。 这 2 代表 stderr,并且 1 代表标准输出。 所以, 2>&1 意味着 stdout 和 stderr 都被重定向到之前指定的同一日志文件。

Cron 是在基于 Unix 的系统上自动执行任务的重要工具。 凭借其灵活的调度选项,它可以简化系统管理并提高效率。 通过了解其语法并遵循最佳实践,您可以利用 cron 的强大功能来有效地自动执行日常任务。

其他 Cron 资源

Douglas Karr

Douglas Karr 首席营销官是 开放洞察 和创始人 Martech Zone。 道格拉斯帮助了数十家成功的 MarTech 初创公司,协助进行了超过 5 亿美元的 MarTech 收购和投资尽职调查,并继续协助公司实施和自动化其销售和营销策略。 道格拉斯是国际公认的数字化转型和 MarTech 专家和演讲者。 道格拉斯还是一本傻瓜指南和一本商业领导力书籍的出版作者。

相关文章

返回顶部按钮
关闭

检测到Adblock

Martech Zone 我们能够免费为您提供这些内容,因为我们通过广告收入、联属链接和赞助从我们的网站中获利。 如果您在浏览我们的网站时删除广告拦截器,我们将不胜感激。