如何只允许 cron 在特定时间内在 PHP 文件上运行

发布于 2024-12-11 19:57:05 字数 200 浏览 0 评论 0原文

我有一个 cron 作业,每天全天运行几次 (:00)。我怎样才能只允许PHP脚本在这段时间内运行?我不希望其他人能够运行我的脚本。我的想法是这样的:

if (date('i', time()) > 2 || date('i', time()) < 58) {
  die;
}

有没有更好、更安全的方法?

I have a cron job that runs several times a day at full hours (:00). How can I only allow the PHP scripts to run during this time? I don't want someone else to be able to run my script. Here's what I thought of:

if (date('i', time()) > 2 || date('i', time()) < 58) {
  die;
}

Are there better, more secure ways?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌逼全场 2024-12-18 19:57:05

如果您将 php 脚本放在 Web 目录之外,则只有您 / cron 能够运行它,其他人都无法运行。

有多种方法可以从 cron 运行 php 脚本,例如添加这样的内容作为 php 脚本的第一行:

#!/usr/local/bin/php      /* depends on your server and configuration */

If you place your php script outside of your web directory, only you / cron will be able to run it and nobody else.

There are different ways to run a php script from cron, like for example adding something like this as the first line of your php script:

#!/usr/local/bin/php      /* depends on your server and configuration */
蓝眼泪 2024-12-18 19:57:05

cron 作业通常以 root 用户身份运行。您可以使脚本只能由 root 执行和读取:

sudo chown root script_for_root_only.php
sudo chmod 744 script_for_root_only.php

如果您不想使用 root,您还可以更改 crontab 中的命令以特殊用户身份运行脚本。

我认为我们可以假设您没有脚本位于可访问 Web 的位置。如果你这样做了,那就移动它。

The cron jobs are usually run as the root user. You could make your script executable and readable by root only:

sudo chown root script_for_root_only.php
sudo chmod 744 script_for_root_only.php

You can also alter the command in the crontab to run the script as a special user if you do not want to use root..

I think we can assume that you do not have the script in a web accessible location. If you did then move it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文