【问题标题】:crontab with php doesn't work [duplicate]带有php的crontab不起作用[重复]
【发布时间】:2012-11-11 21:12:38
【问题描述】:

我的情况是我在/root/test.php 有一个 php 文件。 我像这样设置我的根的 crontab

* * * * * /usr/local/bin/php /root/test.php

test.php 的内容用于为 postfix 生成别名数据库,如下所示:

<?php echo shell_exec("postaliases hash:/etc/aliases"); >

我知道 crontab 成功运行了 test.php。 但是里面的 shell_exec 似乎不起作用(我在 /etc/ 下找不到我的目标 aliases.db 文件)。 而且我已经测试过直接使用推荐php -f test.php 是有效的。

我知道情况有点复杂。但如果有人能解决我的问题,我将非常感谢您的帮助。

【问题讨论】:

  • test.php的源码在哪里?
  • test.php是root编辑的测试脚本。抱歉没有注意到内容隐藏在< >.我已经更新了我的问题。
  • 你知道运行 crontab 的用户,以及 /root/test.php 的权限吗?这将是两件好事。
  • 如果我像上面一样运行两个 shellscript 会有什么问题吗?

标签: php crontab freebsd postfix-mta


【解决方案1】:
  1. 使用 postaliases 的完整路径。很可能它不在执行脚本的用户路径中

  2. 为什么要使用 php 脚本来调用 shell?只需使用 shellscript

【讨论】:

  • 这是一个用 php 编写的大型系统的一部分的测试代码。为了简化整个系统的安装过程,我更喜欢使用php脚本。我认为路径名没有问题,但仍然感谢您的回复。
  • 我将 .php 脚本更改为 .sh 并将内容更改为“/usr/local/sbin/postalias hash:/etc/aliases” 但仍然在“sh test.sh”上工作,不工作在 crontab 上。
  • 您是否收到来自 cron 脚本的邮件?您是否在系统日志中收到日志消息?
  • 我尝试将 shell 输出从该测试 shell 重定向到调试文件。我确信重定向成功,但“postalias”没有任何输出。
  • 尝试用有输出的东西替换 postalias,例如“回声你好!”
猜你喜欢
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 2019-10-12
  • 1970-01-01
相关资源
最近更新 更多