我正在使用crontab每分钟执行一次脚本。但脚本无法正常工作。此脚本应创建文件,登录到另一个文件并写入DB。只写DB工作。当我手动启动脚本时它工作正常。这是脚本:
#!/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
答案 0 :(得分:2)
我会删除
> /dev/null
并将此stdout / stderr记录到文件中以查看正在发生的事情。
> /tmp/cron.log 2>&1
进程在cron下运行,环境非常有限,我怀疑你的程序期望环境中没有的东西,或者在不允许编写日志文件的目录中运行。上面的重定向会立即告诉你发生了什么。
答案 1 :(得分:1)
在运行脚本之前,您需要指定完整路径或更改当前目录。该脚本没有访问权限,无法在cron启动它的目录中创建日志文件。