2012-08-01 7 views
0

매분마다 crontab을 사용하여 스크립트를 실행하고 있습니다. 하지만 스크립트가 제대로 작동하지 않습니다. 이 스크립트는 파일을 생성하고, 다른 파일에 로그를 남기고, DB에 기록해야합니다. DB 작업에만 쓰십시오. 수동으로 스크립트를 시작하면 제대로 작동합니다.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); 
?> 

내 크론 모양이 같은 :

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

답변

1

스크립트를 실행하기 전에 전체 경로를 지정하거나 현재 디렉토리를 변경해야합니다. 이 스크립트에는 cron이 시작하는 디렉토리에 로그 파일을 작성하기위한 액세스 권한이 없습니다.

+0

고마워요. 그게 문제 였어. –

2

내가

> /dev/null 

를 제거하고 무슨 일이 일어나고 있는지 확인하기 위해 파일/표준 에러하여 표준 출력을 로그로 이것을 대체 할이 스크립트입니다 에.

> /tmp/cron.log 2>&1 

프로세스는 매우 제한된 환경 크론에서 실행, 나는 당신의 프로그램이없는 환경에서 뭔가를 기대하고있다, 또는 로그 파일을 작성 허용하지 않는 디렉터리에서 실행되고 생각한다. 위의 리다이렉션은 어떤 일이 벌어지고 있는지 즉시 알려줍니다.

+0

변경할 수 있지만 아무것도 /tmp/cron.log에 로그인되어 있지 않습니다. –

관련 문제