我有一个cron设置来运行一个php文件但由于某种原因它在时机成熟时不起作用。我可以在终端手动调用相同的文件,它工作正常。也没有错误消息。
注意:为不同的文件夹和文件设置了更多的作业,它们都可以正常工作。权限也一样。
由于
CRON
30 2 * * 1,2,3,4,5 php /var/www/html/cronjob/update-db.php
权限
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
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 :(得分:2)
确保php可执行文件在您的路径中或在cron作业中填写php的完整路径,如
30 2 * * 1,2,3,4,5 /usr/bin/php /var/www/html/cronjob/update-db.php
如果你不确定php的位置,你可以运行
which php
获取路径
答案 1 :(得分:1)
还建议将输出重定向到日志文件,并使用较短的运行时间间隔进行调试
* / 5 * * * * / usr / bin / php /var/www/html/cronjob/update-db.php>> /path_to_log.log