0

毎分スクリプトを実行するために 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
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 に答える