1

我想从 php 脚本文件中设置 cron 作业。我可以使用 shell_exec() 函数执行 php 文件。但我无法运行与 cron 作业相关的命令。$output = shell_exec("crontab -l");此命令不起作用。我的 cronjob 位于 /usr/bin/crontab 下。我将文件权限设置为 777,并以 root 访问权限执行此命令。仍然没有运气。谁能帮我?

4

1 回答 1

0

您的“crontal -l”命令仅在其个人 crontab 中显示为您的用户安排的内容。它可能会返回一个空字符串,具体取决于您当前的个人 crontab。不要与文件 /etc/crontab 混淆,它是系统范围的 crontab,适用于所有用户,只能由 root 写入。

如果您需要 - 正如我想我所理解的那样 - 从 php 脚本在 crontab 中添加一个作业,也许您可​​能只是想尝试类似的东西:

$r=shell_exec('cat "30 6 * * * user my_cmd my_args" >> /etc/crontab');

例如,要安排“my_cmd my_args”,以“用户”身份运行,每天早上 6:30。这个 PHP 脚本应该以 root 身份启动,因为只有他可以在 /etc/crontab 中写入。

小心:我希望您的 php 脚本不是从网站启动,而是在访问受限环境的命令行中启动,以限制安全风险,特别是如果您采取措施使其以 root 身份启动。这种脚本在你的系统中是一个很大的漏洞。请考虑这一点。这是我的建议。

顺便说一下,/usr/bin/crontab 的权限回到:

-rwxr-sr-x 1 根 crontab 35040 19 déc。2010 /usr/bin/crontab(来自 Debian 系统的示例)。

于 2012-05-11T05:52:18.657 回答