cron 脚本的权限?

cron 脚本的权限?

我有一些需要每小时安排一次的 php 脚本。

(a)如何从命令行/shell 调度它们?

(b)我应该对它们设置什么权限/所有权?


编辑1:

大家好 - 该网站由“apache”用户运行。cron 脚本以哪个用户身份运行?root 还是 apache 还是其他?

答案1

crontab -e将打开你的个人 crontab 的 crontab 编辑器(假设管理员允许)。在这里,你可以输入如下一行

0 * * * * /usr/bin/php /home/matt_tm/php/runme.php

每个脚本一次,其中/usr/bin/php包含命令行 php 二进制文件的完整路径以及要运行的 php 文件的完整路径。

这将在每小时的第 0 分钟 (:00)、每月的每一天、每月的每一天以及每周的每一天运行脚本(您可能希望将它们分散开来,以便一个脚本从 0 开始,另一个从第 5 分钟开始,依此类推)。您个人 crontab 中的命令以您的帐户运行,因此在这种情况下,您的脚本所需要的只是您的帐户能够读取脚本、执行 php 二进制文件并有权访问脚本所需的所有文件。

答案2

作为 DerfK 答案的替代,您也可以用该行启动每个 PHP。

#!/path/to/php

并将该文件设置为可执行文件。

你的 crontab 行现在将如下所示:

0 * * * * /path/to/php/script.php

答案3

(a) 您可以使用 php-cli 或 wget/curl (其他实用程序) (b) 执行权限。如果 php 脚本需要创建文件,请确保权限与运行的用户相同。

答案4

要安排它们,请为它们应该以之运行的用户编辑 cronfile。“man crontab”应该会告诉您如何做到这一点。

至于所有权,这完全取决于脚本应该做什么。如果它们修改某些资源,则脚本必须具有用户或组权限才能修改资源(假设该资源是本地文件)。在类 Unix 系统上执行此操作的最明智方法通常是通过组权限。

相关内容