如何为 PHP 安排 Cron 作业:分步指南

2023-11-16

Cron 是基于 Unix 的操作系统中的任务调度程序。它用于安排命令或脚本在固定时间、日期或间隔定期运行。此功能对于自动化系统维护或管理任务特别有用。

Cron 的一个常见用例是自动执行用 PHP(一种流行的服务器端脚本语言)编写的脚本。本文将引导您了解如何为 PHP 脚本安排 Cron 作业,并提供实际示例以帮助您更好地理解。

第 1 步:了解 Cron 语法的基础知识

在设置 Cron 作业之前,了解 Cron 条目的基本语法非常重要:

1
2
3
4
5
6
7
8
*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of the week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of the month (1 - 31)
|     +------------ hour (0 - 23)
+------------- min (0 - 59)

每个字段(由星号表示)可以有一个值、用逗号分隔的多个值(例如“1,2,3”)、一系列值(例如“1-3”)或星号来表示“每一个”。

第 2 步:编写 PHP 脚本

为了安排 Cron 作业,您首先需要一个 PHP 脚本来安排。作为一个简单的示例,我们考虑一个将当前日期和时间记录到文本文件的 PHP 脚本。

在合适的目录中创建 PHP 文件 (cron_example.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$today = date(“Y-m-d H:i:s”);
$file = '/path/to/your/logfile.txt';
 
// 检查文件是否存在
if(文件已存在($file)) {
    $current = 文件获取内容($file);
} else {
    $current = '';
}
 
$current .= “当前日期和时间:” . $today . "\n";
文件放置内容($file, $current);
?>

步骤 3:将 PHP 脚本安排为 Cron 作业

要将刚刚编写的 PHP 脚本安排为 Cron 作业,您需要访问 Crontab,它是 Cron 守护程序的计划任务列表。

在终端中,输入以下命令:

crontab -e 

此命令在默认文本编辑器中打开当前用户的 Crontab。

假设您想每天凌晨 3:30 运行该脚本。 Cron 语法如下所示:

1
30  3  *  *  *    /usr/bin/php /path/to/your/cron_示例.php

在这一行中:

  • “30 3 * * *”意思是“每天凌晨 3:30”。
  • “/usr/bin/php”是 PHP 可执行文件的路径。您可能需要根据您的服务器配置进行调整。
  • “/path/to/your/cron_example.php”是您要运行的 PHP 脚本的完整路径。

只需将此行添加到 Crontab 文件的末尾,保存它,然后退出文本编辑器。

第 4 步:确认您的 Cron 作业已安排

为了确保您的 Cron 作业已正确计划,您可以通过在终端中输入以下命令来列出当前用户的所有已计划 Cron 作业:

crontab -l 

您应该会看到刚刚添加到 Crontab 的行。

结论

本文简要介绍了如何为 PHP 脚本安排 Cron 作业,并提供了一个将当前日期和时间记录到文本文件的脚本示例。正如您所看到的,Cron 是一个强大的工具,用于在基于 Unix 的系统上自动执行任务,并且可以像任何其他命令一样调度 PHP 脚本。充分了解 Cron 语法和上面提供的步骤后,您现在应该能够将自己的 PHP 脚本安排为 Cron 作业。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 PHP 安排 Cron 作业:分步指南 的相关文章

  • 如何确定 n 高数字金字塔中的最大路线成本

    我有一个像这样的数字金字塔 7 4 8 1 8 9 2 4 6 7 4 6 7 4 9 4 9 7 3 8 8 routes 32 每个数字都按其系列中的强大程度进行索引 0 9 gt 1 1 8 gt 5 2 8 gt 4 3 7 gt
  • 当错误较多时,Laravel 不会显示错误。这是 Bug?

    重复的https github com laravel framework issues 31123 https github com laravel framework issues 31123 Laravel 版本 6 8 0 6 10
  • HTML 表单 POST 到 PHP 页面 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 好的 我创
  • 基于 PHP 的 CSV 编辑器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道用 PHP 编写的在线 CSV 编辑器允许用户打开 编辑和保存给定的 CSV 文件 我能找到的只
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何从 Laravel 5 中的 Public/Images 文件夹中删除图像(URL 数据)

    如何从 laravel 5 中的 public images 文件夹中删除图像文件 我从这个网站找到了一些例子 但我知道他们只是在他们的文件中使用文件名record table 但我正在使用类似的东西URL e g localhost pr
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • 使用 php 将 HLS Segment (ts) 视频转换并加入到 mp4

    你好我正在使用这个工具 https github com Ejz HLSDownloader https github com Ejz HLSDownloader将 HLS 视频片段从 m3u8 播放列表下载到 ts 文件中 不 我不知道如
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

    我们在 Laravel 5 和 AngularJs Ionic 中运行此 Web 服务来处理 Web 当我们将请求从 Web 客户端 发送到 Web 服务 后端 时 我们传递了嵌套的 JSON 对象 我们在读取服务器端父对象下的所有子对象时
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469
  • 哪个 PHP 5 版本最常用?

    当我开发将在不同配置的客户端 Web 服务 通常使用共享托管 上使用的应用程序时 我应该假设大多数 Web 服务器都具有哪个 PHP 5 版本 例如 5 2 x 5 3 x 等 在所有使用 PHP 版本 5 的网站中 有 84 9 使用版本

随机推荐

  • Node.js 与 MySQL 示例

    Node js 是一种流行的 Web 应用程序编程语言 如 PHP 和 JAVA 此外 MySQL 是用于存储值的最流行的数据库 Node js 的 MySQL 数据库驱动程序可在 NPM 存储库下找到 在本教程中 您将学习如何使用 Nod
  • 如何在 Ubuntu 18.04 上安装 GIMP 2.10

    GIMP GNU 图像处理程序 是一个免费分发的用于处理图像的软件 我们可以轻松地优化图像 使用 GIMP 转换其类型 它为设计师提供了将图像转化为真正独特的创作的能力和灵活性 GIMP 是一个跨平台应用程序 可用于 Linux Windo
  • 如何在 EC2 实例上创建交换分区

    在 Amazon Elastic Compute Cloud EC2 实例上创建交换分区有助于提高系统的性能和稳定性 交换分区是硬盘驱动器上的一个空间 当物理内存 RAM 不足时 操作系统可以将其用作虚拟内存 在本文中 我们将解释如何在 E
  • 如何在 Ubuntu 20.04 上安装和配置 Ansible

    Ansible 是一种自动化工具 用于从单台计算机管理多个远程主机 它为您提供了针对大量远程主机的轻松配置 例如 您在多台机器上执行相同的任务 Ansible 为您提供了自动执行这些任务的选项 Ansible 是 Chef 和 Puppet
  • 如何在 Bash Shell 中使用换行符 ( \n )

    问题 如何将换行打印为 n在 bash shell 中 如何使用 n在 shell 脚本中打印新行 Issues 在 bash shell 中回显换行符打印文字 n但不是新线 打印文字 n 在 bash 脚本中的嵌套打印新行中 Comman
  • 如何在 CentOS/RHEL 和 Fedora 上设置 VNC 服务器(Linux 远程桌面访问)

    VNC 虚拟网络计算 服务器支持 Linux 系统的远程桌面访问 类似于MSTSC在窗户中 一般来说Linux管理员不喜欢使用Windows访问 但有时我们需要访问Linux的远程桌面 在这种情况下 我们需要在 Linux 系统上安装 vn
  • 如何在 FirewallD 中打开特定端口

    防火墙是大多数现代 Linux 发行版使用的防火墙管理解决方案 在本教程中 您将学习如何在firewalld 中打开端口 本教程介绍如何在firewalld 中为公共 特定IP 或IP 范围打开端口 找到我们的上一篇文章关于Firewall
  • 在 Windows 上安装 Python 3.x 的综合指南

    Python 是一种广泛使用的通用编程语言 以其简单性 可读性和广泛的应用范围而闻名 无论您是开发 Web 应用程序 执行数据分析还是自动化任务 Python 都是一个绝佳的选择 截至 2023 年 7 月更新本文时 最新的 Python
  • 如何在一个 Cron 作业中运行多个命令

    Crontab 是一个用于在 Unix Linux 系统上定期运行计划任务的实用程序 它允许我们安排多个 cron 作业同时运行 我们可以安排任何 shell 命令或脚本在终端上执行 crontab 中的每个计划作业均由换行符分隔 我们还可
  • Linux 中的 tee 命令及示例

    tee 是 Linux 中的一项命令 它从标准输入读取并将输出写入标准输出和一个或多个文件 从而有效地复制输入 它通常用在 shell 脚本中 将命令输出发送到文件和控制台 Linux 中的 Tee 命令主要与其他命令结合使用 它读取输入并
  • 如何在 Debian 10/9 上安装 Mono

    Mono 项目由微软赞助 它是 Microsoft NET Framework 的开源跨平台实现 Mono 支持大多数具有 32 位和 64 位架构的现代操作系统 本教程帮助您逐步在 Debian 10 和 Debian 9 系统上安装 M
  • 如何在 Ubuntu 18.04 和 16.04 上设置 Squid 代理服务器

    Squid 是类 Unix 操作系统中最流行的代理服务器 它还用于网页过滤 Squid 还可用作 HTTP HTTPS 和 FTP 协议的缓存代理服务器 本文将帮助您在 Ubuntu 18 10 18 04 LTS 16 04 LTS 和
  • 如何在 Linux 中删除超过 30 天的文件

    定期从服务器中清除旧的未使用文件是最佳实践 例如 如果我们每天 每小时在服务器上运行文件或数据库备份 那么服务器上将会产生很多垃圾 所以要定期清洁 为此 您可以从备份目录中找到旧文件并清理它们 本文向您介绍如何查找和删除超过 30 天的文件
  • 如何使用 Google Chrome 无头功能

    Google Chrome 最新版本发布 新增实用功能无头镀铬 无头 Chrome 对于浏览器自动化很有用 您可以使用命令行和编程语言捕获任何网页的屏幕截图 而无需启动 Chrome GUI 它还支持打印网页DOM并创建网页的pdf 本教程
  • Laravel:从 Apache 中的 URL 中删除“public/index.php”

    当您创建新的 Laravel 项目时 默认配置要求您在 URL 中包含 public index php 以访问您的应用程序 这可能很麻烦 并且会让您的 URL 看起来笨拙且不专业 幸运的是 这个问题有一个简单的解决方案 在本教程中 我们将
  • 如何在 Fedora 上安装 Java 11/8

    Java 是一种流行的应用程序 系统软件和 Web 应用程序编程语言 Oracle Java 8 和 Java 11 需要订阅才能下载和使用 因此 我们使用 OpenJDK 在 Fedora Linux 系统上安装 Java 本教程将帮助您
  • Apt Upgrade 与 Apt Dist-upgrade:主要区别

    The 高级打包工具 APT 是一个强大的包管理系统 用于 Debian Ubuntu 及其衍生版本 它简化了在基于 Linux 的系统上安装 升级和删除软件的过程 在各种APT命令中 易于升级 and apt dist upgrade 在
  • 如何在 MySQL 中创建新用户并授予权限

    MySQL是一个关系数据库管理系统 用于以表和记录的形式存储数据 您可以使用 SQL 语句或编程语言插入 修改或检索数据 它允许我们创建新用户并授予对数据库表的权限 最好的做法是始终对所有数据库使用单独的用户 这将确保应用程序无法访问其他应
  • 如何克隆 Git 存储库中的所有远程分支

    Git 是开发人员的必备工具 可实现高效的代码版本控制 管理和协作 Git 的核心功能之一是将远程存储库克隆到本地计算机的能力 虽然基本的 git clone 命令仅克隆默认分支 但有时您可能需要克隆 Git 存储库中的所有远程分支 在本文
  • 如何为 PHP 安排 Cron 作业:分步指南

    Cron 是基于 Unix 的操作系统中的任务调度程序 它用于安排命令或脚本在固定时间 日期或间隔定期运行 此功能对于自动化系统维护或管理任务特别有用 Cron 的一个常见用例是自动执行用 PHP 一种流行的服务器端脚本语言 编写的脚本 本