[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не правильная работа скрипта при запуске кроном
silent_zzz
В директ админе прописал следующий путь
/usr/local/bin/php -f /home/yyy/domains/zzzzz.ru/public_html/wp-content/uploads/2008/10/betaparsev2.php
Скрипт предназначен для парсинга, и он парсит но без картинок, а если вручную запускать то все нормально,
подскажите плиз в чем касяк....




Спустя 1 час, 8 минут, 2 секунды (28.10.2008 - 12:39) str_replace написал(а):
Есть 100% уверенность, что скрипт запускается?

Спустя 3 часа, 8 минут, 47 секунд (28.10.2008 - 15:48) silent_zzz написал(а):
Ну да я же говорю что он работает, только при парсинге не сохраняет картинку..

Спустя 6 минут, 4 секунды (28.10.2008 - 15:54) str_replace написал(а):
Я понял, что он РАБОТАЕТ, когда ты запускаешь его ВРУЧНУЮ.
А я спрашиваю другое: ты уверен, что крон запускает твой скрипт?

Спустя 36 минут, 45 секунд (28.10.2008 - 16:30) silent_zzz написал(а):
Я думал я понятно написал)
Короче пред история, парсер записывает в бд некую текстовую инфу и картинку в директорию откуда же вызывается
Вручную он записывает и инфу и картинку
Кроном он записывает только инфу, но не записывает картинку

Спустя 1 час, 19 минут, 53 секунды (28.10.2008 - 17:50) Sylex написал(а):
детально надо разбираться в твоем скрипте - как и что он делает.....

делай логи операций большинства действий и смотри

Спустя 5 минут, 29 секунд (28.10.2008 - 17:56) silent_zzz написал(а):
ну лог скажет к примеру файл не записан к примеру и все, только что это даст?

вот скриптек
Код
set_time_limit(0);
for($s = 2;$s <= 10; $s++){
$site[$s] = $s;
$adres = file_get_contents('http://сайт_который_парсю.com/'.$site[$s]);
preg_match_all('|<h3><a.* href=(.*)>(.*)</a></h3>|U', $adres, $mathesname);
preg_match_all('/<p>(.*)<\/p>/',$adres,$mathesdesc);
preg_match_all('/\/images\/icons\/([0-9]+)\/([0-9]+\.jpg)/',$adres,$mathesimg);
preg_match_all('/price">(.*)<span class="cents">/',$adres,$mathesprise);
preg_match_all('/cents">(.*)<\/span>/',$adres,$cent);
preg_match_all('/<\/span><a.* href=(.*)>(.*)<\/a><\/div>/',$adres,$priselink);
preg_match_all('/category">(.*)<\/div>/',$adres,$mathescat);
$namearray = $mathesname[2];
$decsarray = $mathesdesc[1];
$id_cat = $mathesimg[1];
$id_icon = $mathesimg[2];
$prisearr = $mathesprise[1];
$prisecent = $cent[1];
$catarr = $mathescat[1];
$prlink = $priselink[1];
$date=date("Y-m-d h:i:s");
for($i=0,$ind=0;$i < count($namearray) && count($decsarray) && count($id_icon) && count($prisearr) && count($prisecent) && count($prlink) && count($catarr),$ind < 20;$i++,$ind++){
        $val[$ind]=$ind;
        $fh = fopen($id_icon[$i], 'w');
        $img = file_get_contents('http://сайт_который_парсю.com/images/icons/'.$id_cat[$i].'/'.$id_icon[$i]);
        $fw = fwrite($fh, $img);
        if ($prisearr[$i]){
        $prisearr[$i].='.';
        }
        mysql_query("INSERT INTO `wp_posts`
        (`post_date`,`post_author`,`post_title`,`post_content`,`post_parent`)
        VALUES ('".$date."',1,'".$namearray[$i]."','<img src=http://мой_сайт.ru/wp-content/uploads/2008/10/$id_icon[$i] hspace=10 align=left>$decsarray[$i]
        <strong> цена: $prisearr[$i] $prisecent[$i] <a href=$prlink[$i]>купить</a></strong>','".$val[$ind]."');");
        //тут условия типа
                     if (($catarr[$i])=='Photography'){
            mysql_query("INSERT INTO `wp_term_relationships`
            (`object_id`,`term_taxonomy_id`)
            VALUES ('".mysql_insert_id()."',14);");
            }
                // категорий куча и поэтому код не много обрезаю
        mysql_query("INSERT INTO `wp_term_relationships`
            (`object_id`,`term_taxonomy_id`)
            VALUES ('".mysql_insert_id()."',1);");
        
        
        mysql_query("INSERT INTO `wp_posts`
        (`post_date`,`post_author`,`post_title`,`post_parent`,`post_type`,`guid`,`post_mime_type`,`post_status`)
        VALUES ('".$date."',1,'".$id_icon[$i]."','".$val[$ind]."','attachment','http://мой_сайт.ru/wp-content/uploads/2008/10/$id_icon[$i]','image/jpeg','inherit');");
        
            fclose($fh);
            }
}

Спустя 22 секунды (28.10.2008 - 17:56) md5 написал(а):
Цитата(silent_zzz @ 28.10.2008, 17:53) [snapback]53051[/snapback]
ну лог скажет к примеру файл не записан к примеру и все, только что это даст?

нам это ничего не даст
давать должно тебе

веди лог каждого действия, если где-то будет косяк — сразу сужается область дебаженья, можно пошагово посмотреть, что скрипт делает, что не получается сделать и в итоге, почему что-то не получается

http://phpfaq.ru/debug

Спустя 45 минут, 52 секунды (28.10.2008 - 18:42) Sylex написал(а):
кажется здесь:
Код
$fh = fopen($id_icon[$i], 'w');


smile.gif

Спустя 1 час, 33 минуты, 55 секунд (28.10.2008 - 20:16) silent_zzz написал(а):
Цитата(Sylex @ 28.10.2008, 15:42) [snapback]53055[/snapback]
кажется здесь:
Код
$fh = fopen($id_icon[$i], 'w');


smile.gif

Эмм... что? Подскажите=)

Спустя 12 минут, 34 секунды (28.10.2008 - 20:28) Sylex написал(а):
Цитата(silent_zzz @ 28.10.2008, 23:16) [snapback]53064[/snapback]
Цитата(Sylex @ 28.10.2008, 15:42) [snapback]53055[/snapback]
кажется здесь:
Код
$fh = fopen($id_icon[$i], 'w');


smile.gif

Эмм... что? Подскажите=)


нужно указывать полный абсолютный путь....

какая директория является текущей при запуске кроном? Точно ли директория где лежит скрипт?

И еще, от того пользователя, от которого запускается крон - должны быть права на запись в эту папку:)

Спустя 9 минут, 36 секунд (28.10.2008 - 20:38) silent_zzz написал(а):
Скрипт у меня запускается из той же директории где и лежат изображения, по этому такой путь.
Права на запись поставил.

Спустя 29 минут, 57 секунд (28.10.2008 - 21:08) Sylex написал(а):
Цитата(silent_zzz @ 28.10.2008, 23:38) [snapback]53068[/snapback]
Скрипт у меня запускается из той же директории где и лежат изображения, по этому такой путь.
Права на запись поставил.


http://www.st-hosting.ru/help/cron.php?media=print&

почитай внимательно...

я не уверен.... но мне сильно кажется что при запуске скрипта текущей не является та, в которой находится скрипт smile.gif

попробуй в начале поставить:
Код
chdir(dirname(__FILE__));

Спустя 12 часов, 4 минуты, 48 секунд (29.10.2008 - 09:13) silent_zzz написал(а):
Цитата(Sylex @ 28.10.2008, 18:08) [snapback]53071[/snapback]
я не уверен.... но мне сильно кажется что при запуске скрипта текущей не является та, в которой находится скрипт smile.gif

Да кстати, спасибо, я ночью тоже об этом догадался перед сном) Сейчас попробую написать полный путь)

Спустя 1 час, 38 минут, 2 секунды (29.10.2008 - 10:51) silent_zzz написал(а):
Все работает, спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.