无法使用 PHP 编辑 cron - 没有错误

发布于 2024-11-27 20:29:11 字数 798 浏览 0 评论 0原文

我正在尝试使用存储在 /tmp/crontab.txt 的新 crontab 替换 crontab。

  $output = '';
  $output .= "Existing Crontab contents:<br>";
  $output .= shell_exec('crontab -l');

  $output .= "<br>new contents:<br>";
  $output .= file_get_contents('/tmp/crontab.txt');

  $output .= "<br>Result of import:<br>";
  $output .= shell_exec('crontab /tmp/crontab.txt');
  $output .= shell_exec('crontab -l');
  echo $output;

输出为:

Existing Crontab contents:
1 2 3 4 5 existing
new contents:
* * * * * echo 'test'
Result of import:
1 2 3 4 5 existing 

您可以看到导入不起作用并且不显示错误。

Apache 以“无人”身份运行。我已经以 root 身份尝试过 crontab -u无人/tmp/crontab.txt ,并且它有效。

这是权限问题吗?如果是这样,为什么 php(以无人身份运行)无法更新它自己的 cron?我该如何解决这个问题?

谢谢

I am trying to replace the crontab using a new crontab stored at /tmp/crontab.txt.

  $output = '';
  $output .= "Existing Crontab contents:<br>";
  $output .= shell_exec('crontab -l');

  $output .= "<br>new contents:<br>";
  $output .= file_get_contents('/tmp/crontab.txt');

  $output .= "<br>Result of import:<br>";
  $output .= shell_exec('crontab /tmp/crontab.txt');
  $output .= shell_exec('crontab -l');
  echo $output;

The output is:

Existing Crontab contents:
1 2 3 4 5 existing
new contents:
* * * * * echo 'test'
Result of import:
1 2 3 4 5 existing 

You can see the import does not work and does not show an error.

Apache is running as 'nobody'. I have tried crontab -u nobody /tmp/crontab.txt as root and it works.

Is this a permissions issue? If so, why is php (running as nobody) unable to update it's own cron? How do I get around this?

Thanks

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

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

发布评论

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

评论(1

习ぎ惯性依靠 2024-12-04 20:29:11

尝试将导入行更改为:

$output .= shell_exec('crontab /tmp/crontab.txt 2>&1');

这会将 stderr 重定向到 stdout,并让 PHP 捕获 cron 吐出的任何错误消息。

Try changing your import line to this:

$output .= shell_exec('crontab /tmp/crontab.txt 2>&1');

that'll redirect stderr to stdout and let PHP catch any error message cron's spitting out.

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