网站搜索

如何使用 Cron 以普通用户身份运行 PHP 脚本


Cron 是一个功能强大的实用程序,用于在类 Unix 操作系统(包括 Linux)中基于时间调度作业。它作为守护进程运行,可用于调度命令或 shell 脚本等作业来执行备份、调度更新等,这些作业在特定时间、日期或时间间隔在后台定期自动运行。

cron 的一个限制是它假设系统将永远运行。因此它适用于台式机以外的服务器。此外,您可以使用“at”或“batch”命令在给定或稍后的时间安排任务:但该任务仅运行一次(不重复)。

建议阅读: 如何在 Linux 上使用 Anacron 安排作业

在本文中,我们将解释如何允许普通系统用户通过 Linux 中的 cron 作业调度程序运行或执行 PHP 脚本。

您可以使用crontab (CRON TABle) 程序安排作业。每个用户都可以拥有自己的 crontab 文件,该文件由用于定义作业的六个字段组成:

  • 分钟 – 接受 0-59 之间的值。
  • 小时 – 接受 0-23 之间的值。
  • 某月某日 – 存储 1-31 之间的值。
  • 一年中的月份 – 存储 1-12 或 Jan-Dec 之间的值,您可以使用每个月份名称的前三个字母,即 Jan 或 Jun。
  • 星期几 – 保存 0-6 或 Sun-Sat 之间的值,在这里您还可以使用每天名称的前三个字母,即 Sun 或 Wed。
  • 命令 – 要执行的命令。

要在您自己的 crontab 文件中创建或编辑条目,请键入:

crontab -e

要查看所有 crontab 条目,请键入以下命令(这将简单地将 crontab 文件打印到 std 输出):

crontab -l

但是,如果您是系统管理员并且想要以其他用户的身份执行 PHP 脚本,则需要将其安排在 /etc/crontab 文件或 root 用户的 crontab 文件中,该文件支持额外的文件来指定用户名:

sudo vi /etc/crontab

并安排您的 PHP 脚本像这样执行,在计时部分后指定用户名

0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

上面的条目每天午夜以用户 howtoing 的身份执行脚本 /var/www/test_site/cronjobs/backup.php

如果您想每十分钟自动执行一次上述脚本,请将以下条目添加到 crontab 文件中。

*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

在上面的示例中,*/10 * * * * 表示作业应该发生的时间。第一个图显示分钟 - 在这种情况下,每“十” 分钟。其他数字分别显示小时、天、月和星期几。

您可能还想阅读以下相关文章。

  1. 使用 Shell 脚本自动化 Linux 系统维护任务
  2. 每个 Linux 用户都必须知道的 12 个有用的 PHP 命令行用法
  3. 如何在 Linux 终端中运行 PHP 代码
  4. 对系统管理员有用的 30 个 Linux 命令

就这样!我们希望您觉得这篇文章有用。如果您对此主题有任何问题或额外的想法要分享,请使用下面的评论表。