0

我每分钟都使用 crontab 执行我的脚本。但是脚本不能正常工作。这个脚本应该创建文件,记录到另一个文件并写入数据库。仅写入数据库工作。当我手动启动脚本时,它工作正常。这是脚本:

#!/usr/bin/php
<?php
require 'include/functions.php';
require 'include/logger.php';

$lock_file_name = "test.txt";
$lock_file = fopen($lock_file_name, "w+");
fclose($lock_file);

$log_file = "test.log";
$log = new log($log_file);
$logEnabled = 1;

if ($logEnabled==1) {$log->add("DEBUG: Start test.");}

if_dbconn();
$SQL = "INSERT INTO .`test` VALUES (1666, 6, 6, '6', '6', '6', '6', 6, '6', '6', 6, 6, 6, '6')";
mysql_db_query($db,$SQL);
?>

我的 cron 看起来像这样:

* * * * * /usr/bin/php -f /path/to/script/testCron.php > /dev/null
4

2 回答 2

2

我会删除

> /dev/null

并将其替换为将您的 stdout/stderr 记录到文件中以查看发生了什么。

> /tmp/cron.log 2>&1

进程在非常有限的环境下运行在 cron 下,我怀疑您的程序期望环境中不存在某些内容,或者在不允许写入日志文件的目录中运行。上面的重定向会立即告诉你发生了什么。

于 2012-08-01T08:42:32.523 回答
1

您需要在运行脚本之前指定完整路径或更改当前目录。该脚本无权在 cron 启动它的目录中创建日志文件。

于 2012-08-01T08:43:08.250 回答