2012-11-23 2 views
1

PHP 파일을 실행하도록 cron을 설정했지만 시간이 흐르면 ​​어떤 이유로 작동하지 않습니다. 수동으로 터미널에서 동일한 파일을 호출 할 수 있으며 정상적으로 작동합니다. 오류 메시지도 표시되지 않습니다.특정 파일에 대해 cronjob이 실행되지 않았습니다.

참고 : 다른 폴더 & 개의 파일에 대해 더 많은 작업이 설정되어 있으며 정상적으로 작동합니다. 권한도 동일합니다.

감사

CRON

30 2 * * 1,2,3,4,5 php /var/www/html/cronjob/update-db.php 

PERMISSIONS

drwxr-xr-x 2 root root  4096 Nov 20 10:17 cronjob 

-rwxr-xr-x 1 root root 5808 Nov 21 17:21 update-db.php 
  • conn.php 다른 많은 cronjobs에서 사용하고 잘 작동되고있다.
  • 이 코드는 터미널에서 실행되도록 호출 할 때 올바르게 작동합니다.
  • 다른 모든 cronjob은 이것과 별개로 작동합니다.

CODE

require_once "/var/www/html/dbfolder/conn.php"; 


function write_log($message) 
{ 
    $filename = 'update-sis-assessment-column-log.txt'; 

    if (file_exists($filename)) 
    { 
     $handle = fopen($filename, 'a'); 
    } 
    else 
    { 
     $handle = fopen($filename, 'w'); 
     //chmod($filename, 0644); 
    } 

    fwrite($handle, $message . "\r\n\r\n"); 
    fclose($handle); 

    exit; 
} 

if (connectDB() === true) 
{ 
    $query = "SELECT......."; 
    $rcset = mysql_query($query); 

    $terms = null; 

    if (@mysql_num_rows($rcset) > 0) 
    { 
     while ($records = mysql_fetch_array($rcset)) 
     { 
      if (ctype_digit($records['Term'])) 
      { 
       $terms .= "'" . substr($records['Term'], 0, 4) . "-01', "; 
      } 
     } 

     $terms = substr($terms, 0, -2); 
    } 

    write_log('DONE : ' . $terms); 
} 
+0

cronlog를 확인 했습니까? – GBD

+0

GBD cronlog는 어디에 있습니까? 나는 /home/user/cronlog.log를 보려고했으나 그것도 존재하지 않았다. – Erik

답변

2

는 PHP 실행 파일이 경로에 있는지 확인하십시오 또는 당신이 확실하지 않은 경우

30 2 * * 1,2,3,4,5 /usr/bin/php /var/www/html/cronjob/update-db.php 

처럼 cron 작업에 PHP의 전체 경로를 넣어 어디서 PHP를 실행할 수 있습니까?

which php 

+0

약 20 개의 작업이 있고'/ usr/bin/php' 부분을 제외하고 모두 잘 작동한다. 또한 파일에는'0755' 권한이있다. – BentCoder

+0

그러면 san4o가 제안한대로 로그 파일에 오류가 있는지 확인하는 것이 좋습니다. 한 가지 기억해야 할 점은 cron에있는 다른 PHP 파일을 포함하는 경우 경로가 올바른지 확인해야한다는 것입니다. 잘 –

+0

그냥 발견, 동일한 파일이 다른 폴더에서 작동합니다. 모든 폴더 및 파일에 대한 사용 권한은 동일합니다. 그래도 원래 폴더에서 작동하지 않습니다. 오류 없음. – BentCoder

1

는 또한 로그 파일 및 디버그

*/5 * * * *는/usr/빈/PHP의/var/www/html/cron 작업을 짧은 실행 시간 간격을 사용하여 출력을 재 추천 경로를 얻을 수 있습니다 /update-db.php >> /path_to_log.log

+0

빈 로그 파일을 만듭니다. – BentCoder

+0

일부 디버그 추가 echo "some ..."; PHP 스크립트에서. 이 crontab에 다른 직업이 있습니까? 그들이 일하는 복용량? – san4o

관련 문제