2012-08-01 104 views
0

我正在使用crontab来每分钟执行一次脚本。但脚本无法正常工作。该脚本应创建文件,登录到其他文件并写入数据库。只写入数据库工作。当我手动启动脚本时,它工作正常。这是脚本: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 

回答

1

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

+0

非常感谢。这是问题所在 – 2012-08-01 08:54:42

2

我会删除

> /dev/null 

,并记录你的标准输出/标准错误到一个文件替换该看看这是怎么回事上。

> /tmp/cron.log 2>&1 

进程具有非常有限的环境下cron运行,我怀疑你的计划期待在环境的东西是不存在,或在目录不允许写日志文件被运行。上面的重定向会立即告诉你发生了什么。

+0

我改变了它,但没有在/tmp/cron.log记录 – 2012-08-01 08:48:46