【问题标题】:crontab not working (php exec)crontab 不工作(php exec)
【发布时间】:2016-01-13 18:42:18
【问题描述】:

----来源

#!/usr/bin/php -q
<?php
set_time_limit(0);

$domain = filter_input(INPUT_POST, 'domain', FILTER_SANITIZE_URL);
$terms = filter_input(INPUT_POST, 'terms', FILTER_SANITIZE_STRING);

require_once('/home/myaccount/www/scrap/goutte-v2.0.4.phar');
include_once('/home/myaccount/www/scrap/common.php');

$command = "ps -ef|grep data_scrap.php";
$commandResult = shell_exec($command);
$commandResultArray = explode("\n", $commandResult);

if(sizeof($commandResultArray) == 6) {
    echo "[".date("Y-m-d H:i:s")."] working...".PHP_EOL;
    var_dump($commandResultArray);
    exit;
} else {
    echo "[".date("Y-m-d H:i:s")."] not working...".PHP_EOL;
}
.
.  php scrpt
.

---- Crontab 调度

*/1 * * * * root /usr/bin/php /cron_script/data_scrap.php >> /cron_script/data_scrap_log.txt

---- Crontab 日志(系统日志)

Jan  7 12:10:01 dev CRON[2051]: (root) CMD (root /usr/bin/php /cron_script/data_scrap.php >> /cron_script/data_scrap_log.txt) 
Jan  7 12:10:01 dev postfix/pickup[643]: 6D6B113A1191: uid=0 from=<root> 
Jan  7 12:10:01 dev postfix/cleanup[2018]: 6D6B113A1191: message-id=<20160107031001.6D6B113A1191@mydomain> 
Jan  7 12:10:01 dev postfix/qmgr[14721]: 6D6B113A1191: from=<root@mail.mydomain>, size=623, nrcpt=1 (queue active) 
Jan  7 12:10:01 dev postfix/local[2021]: 6D6B113A1191: to=<root@mail.mydomain>, orig_to=<root>, relay=local, delay=0.31, delays=0.28/0/0/0.03, dsn=2.0.0, status=sent (delivered to maildir) 
Jan  7 12:10:01 dev postfix/qmgr[14721]: 6D6B113A1191: removed 

---- cat /cron_script/data_scrap_log.txt

null

----文件权限

chown myaccount:myaccount data_scrap.php
chmod 777 data_scrap.php
chmod +x data_scrap.php

为什么 crontab 不工作?

php /cron_script/data_scrap.php -> 它将运行。

请您帮忙。

【问题讨论】:

  • 您不能从命令行提供$_POST。 $domain 和 $terms 将始终为空。
  • 用户 cron 是否允许写入 /cron_script/data_scrap_log.txt?
  • 将所有输出重定向到日志、stderr 和 stdout、*/1 * * * * root /usr/bin/php /cron_script/data_scrap.php &gt;&gt; /cron_script/data_scrap_log.txt 2&gt;&amp;1 并检查错误,脚本可能正在运行但可能有错误
  • /cron_script 权限 775 data_scrap_log.txt 权限 777
  • 您的 crontab 似乎正在向您的根用户发送每封电子邮件的错误消息。更改为 root 用户并阅读您的电子邮件。

标签: php cron


【解决方案1】:

如下更改您的 crontab 条目

*/1 * * * * /cron_script/data_scrap.php >> /cron_script/data_scrap_log.txt 2>&1

删除root 和php 二进制文件的路径,因为php 文件具有shebang

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 2011-12-21
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多