如何使用 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 * * * *
表示作业应该发生的时间。第一个图显示分钟 - 在这种情况下,每“十”
分钟。其他数字分别显示小时、天、月和星期几。
您可能还想阅读以下相关文章。
- 使用 Shell 脚本自动化 Linux 系统维护任务
- 每个 Linux 用户都必须知道的 12 个有用的 PHP 命令行用法
- 如何在 Linux 终端中运行 PHP 代码
- 对系统管理员有用的 30 个 Linux 命令
就这样!我们希望您觉得这篇文章有用。如果您对此主题有任何问题或额外的想法要分享,请使用下面的评论表。