Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Cron: запуск в определённое время PHP-скрипта

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Qwezar

Цитата:
использую пакет denwer

Программа cron являеться автономной, она не имеет ничего общего с Апачем или РНР. Это простая программа демон которая постоянно запушена на ПК (или сервере) и которая проверяет постоянно что в данный момент она должна сделать. Как вам уже посоветовал andead под виндами одна из альтернатив и есть планировщик (а под никсами такой планировщик cron).
 
Удачи

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 14:28 16-01-2008
Qwezar



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо разобрался, для винды использую команду at

Всего записей: 360 | Зарегистр. 31-12-2006 | Отправлено: 18:27 16-01-2008
Geduc



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Возникла проблема с запуском php скрипта по расписанию. Сам скрипт рабочий, но крон не отрабатывает.
Пользуюсь услугами хостинга peterhost, crontab'a через web-панель у них нет. Всё надо делать через SSH.
Само расписание я задал:
* * * * * /home/nbreview/www/site2/public_html/inc.php
Но больше в crontab ничего нет. Скажите, пожалуйста, какие конфиг данные надо дописать, чтобы cron работал?
 
Заранее спасибо!

Всего записей: 26 | Зарегистр. 18-03-2006 | Отправлено: 12:31 24-11-2008
ASteel



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На ваш выбор
или:
1 - прямой вызов интерпретатора PHP (может не работать, если писалось для запроса через браузер.);

Код:
 
* * * * * /usr/bin/php -f /home/nbreview/www/site2/public_html/inc.php
 

 
2 - вызов через эмулятор браузера (может не работать, если требуются какие-нибудь действия пользователя)

Код:
 
* * * * * /usr/bin/wget http://www.adressaita/inc.php
 



----------
С сегодняшнего дня прошу считать меня растаможенным (C) Splin

Всего записей: 310 | Зарегистр. 29-01-2002 | Отправлено: 17:24 24-11-2008
Geduc



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASteel
А можно тогда ещё один вопрос?
При этом пути в вызываемом php файле должны быть абсолютными? И если да, то это значит, что пути должны быть "http://...." или "/home/...."?
 
Заранее спасибо!
 
Добавлено:
И всё же что-то у меня не выходит...
код скрипта

Код:
<?php
$counter  = "/home/nbreview/www/site2/public_html/counter.txt"; //имя файла, где хранится счётчик
echo ($counter);  
if (is_readable($counter)) // проверка на читабельность
{
    $opened = fopen($counter, "r+"); //открываем для чтения
    $char = fgets($opened); //считываем содержимое (счётчик) в $char
    fclose($opened);  // закрываем
}
else
{
    echo("не шмогла я! не шмагла!"); // не читается
}
 
$file = "/home/nbreview/www/site2/public_html/$char.jpg"; // тут имя файла фотографии, нумеруются с 0
if (file_exists($file)) //если файл существует
{
echo($char);
$char=$char+3; // инкрементируем имя файла для вывода на главной страничке
echo($char);
}
else
{
echo("<br>файл не существует"); // если не существует, говорим
}
 
if (is_writeable($counter)) // проверка на запись
{
    $opened = fopen($counter, "w"); // открываем
    fputs($opened, $char); // перезаписываем содержимое counter.txt
    fclose($opened);  // закрываем
}
else
{
    echo("не шмогла я! не шмагла!"); // не пишется
}
?>  

 
А это crontab

Код:
* * * * * /usr/local/bin/php -f /home/nbreview/www/site2/public_html/inc.php

Всего записей: 26 | Зарегистр. 18-03-2006 | Отправлено: 08:47 25-11-2008 | Исправлено: Geduc, 15:31 25-11-2008
ASteel



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
При этом пути в вызываемом php файле должны быть абсолютными? И если да, то это значит, что пути должны быть "http://...." или "/home/...."?  

да. абсолютными. причем абсолютными путями файловой системы. т.е. /home/nbreview/www/ и т.д.  
Однако, можно использовать и относительные пути. В этом случае надо перед вызовом скрипта перейти в каталог скрипта. т.е.  
 
cd /home/nbreview/www/ит.д./; /usr/bin/php -f скрипт.php  
 

Цитата:
И всё же что-то у меня не выходит...
код скрипта
 

можно немного подробностей? Что у вас не выходит? Отличным дополнением к этому смотрелись бы коды ошибок. А так же - назначение скрипта
 
ЗЫ. Очень рекомендую найти любой пост модератора этого подфорума, и посмотреть на его подпись

----------
С сегодняшнего дня прошу считать меня растаможенным (C) Splin

Всего записей: 310 | Зарегистр. 29-01-2002 | Отправлено: 15:03 25-11-2008
Geduc



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Основная задача: вывод на страничке по три фотографии в день из папки.
Из-за одной глобальной переменной решил не заводить БД, решил разместить счётчик в текстовике (counter.txt).
Скрипт inc.php по крону раз в сутки должен считывать текущее значение ($char) из counter.txt и если файл $char.jpg существует, то делать инкремент на 3, тем самым обеспечивая вывод следующих 3-х фотографий.
Ну и собсна последний шаг - запись значения $char+3 в тот же counter.txt.
Обработчик ошибки "echo("не шмогла я! не шмагла!"); " означает, что файл невозможно открыть для чтения или для записи.
 
А не работает выполнение скрипта по крону. Специально поставил на выполнение каждую минуту - для теста.
 
Извините, что код без пояснения выложил. И заранее спасибо.

Всего записей: 26 | Зарегистр. 18-03-2006 | Отправлено: 15:26 25-11-2008 | Исправлено: Geduc, 15:46 25-11-2008
ofj

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
привте.
я никогда не юзал cron, как с ним нужно работать.
 
 
Добавлено:
если человек закроет окно браузера, не закончив тест, то, ессно, промежуточные результаты не сабмитятся и скрипт не рассчитывает конечный результат. для этого с помощью cron,к  примеру, можно запускать "мусоросборщик" неоконченных тестов и "выдавать" им конечный результат(записать в базу баных).

Всего записей: 233 | Зарегистр. 13-10-2008 | Отправлено: 08:40 01-04-2009
BigBuka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
А где можно посмотреть, с какой переодичностью cron проверяет изменение файла crontab? То-есть, как быстро он узнает о появлении нового задания?  
 
Пишу скрипт, который явно не выполнит задачу полностью за 60с. Есть мысль, что-бы скрипт по мере необходимости модифицировал crontabl и вызывал себя повторно.  
Вопрос насколько это реально на моем хосте, т.е. время реакции cron-a на новое задание.

Всего записей: 2 | Зарегистр. 20-01-2006 | Отправлено: 22:47 27-08-2009 | Исправлено: BigBuka, 22:49 27-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BigBuka

Цитата:
То-есть, как быстро он узнает о появлении нового задания?

в зависимости от варианта ему либо нужно сказать об этом, либо проверяет поминутно дату изменения файла и если сменилась - перечитывает
о какой ОС идет речь?  
 

Цитата:
Вопрос насколько это реально на моем хосте, т.е. время реакции cron-a на новое задание

реально, но только если столько времени занимает выполнение - я не думаю, что это понравится владельцу хостинга.  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:41 28-08-2009 | Исправлено: Cheery, 05:09 28-08-2009
BigBuka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OS на хостинге  - Linux CENTOS 5
 
Время в основном тратиться на ожидание, пока через небыстрый прокси cURL данные получит. Думаю сильно большой нагрузки не создам. Но окончательный ответ даст только работающий скрипт, и автомат, который либо блоканет аккаунт на хосте, либо нет...

Всего записей: 2 | Зарегистр. 20-01-2006 | Отправлено: 22:24 28-08-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BigBuka
попробуйте.. и узнаете как часто проверяет. только ошибки не сделайте.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:14 29-08-2009
afrika

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, а то я  уперся в стену.
У меня система Дебиан.
 
И моя задача запускать в CRON(e)  cURL.
 
Задачи  cURL брать RSS с определенного сайта и размещать эту информацию в файле с расширением (feed) в индексной папке   пользователя. (то есть, при желании если в браузере набрать http://domenxxxxx.ru/fail.feed - то откроется страничка с содержанием rss - текста)
 
Мне надо прописать в CRON(e)  cURL. чтобы он каждые пять минут запускался и менял файл.
 
Я прописал:
*/05 * * * * /usr/bin/curl --digest "http://login:password@community.livejournal.com/name/data/rss?auth=digest" > /var/www/polzovatel/data/www/domen/fail.feed >/dev/null 2>&1
 
Файл записывается но пустой
 
А если я запускаю курл руками не CRON(ом) - то все в порядке , он содержит текст.
 
CRON я настраиваю у пользователя root
И руками я запускаю тоже от root
 
Но интересная штука получилась. Если файл был создан cURL(ом) которго запустил CRON , то впоследствии если также из под root запустить cURL руками то этот (кроновский)файл не будет замещен. Из этого можно подумать, что когда  я запуск делаю руками у меня меньше прав.
 
Вобщем я запутался помогите , подскажите как правильно прописать  в CRON(e)  cURL.
 

Всего записей: 89 | Зарегистр. 26-10-2003 | Отправлено: 01:39 13-01-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
afrika
я думаю, что это лучше спросить в этом разделе
http://forum.ru-board.com/forum.cgi?forum=65

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:53 13-01-2010
afrika

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
 Я воспользовался твоим советом и сдублировал сообщение.
Я просто подумал что спецы по КРОНУ  собираются именно тут.

Всего записей: 89 | Зарегистр. 26-10-2003 | Отправлено: 09:29 14-01-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Cron: запуск в определённое время PHP-скрипта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru