crontab masterhost

D
На сайте с 28.03.2007
Offline
11
2144

Здравствуйте, господа!

При добавлении задачи на запуск PHP-скрипта в час ночи ежедневно, крон выводит ошибку, говорит "bad minute"

В кронтаб пишу:

0 1 * * * /usr/local/bin/wget -O /dev/null -q

http://mydomain.com/?=test

Перевод строки после второй строчки пробовал делать и не делать, все равно пишет "bad minute".

Подскажите, пожалуйста, что не так.

PS. Подобный топик я нашел в этом разделе, но написать ответ туда не смог, выдавалась ошибка "thread_reply_expired"

Копирайтер (http://anna.dotfix.ru/)
cymax
На сайте с 28.08.2007
Offline
16
#1
dotfixa:
0 1 * * * /usr/local/bin/wget -O /dev/null -q
http://mydomain.com/?=test

Перевод строки после второй строчки пробовал делать и не делать, все равно пишет "bad minute".

dotfixa, это должно быть написано в одну строчку.

0 1 * * * /usr/local/bin/wget -O /dev/null -q http://mydomain.com/?=test

D
На сайте с 28.03.2007
Offline
11
#2

Спасибо за подсказку, cymax, ошибка больше не выдавалась.

Но скрипт все равно не выполняется в час ночи...

Вот как выглядит строка:

0 1 * * * /usr/local/bin/wget/ -O /dev/null/ -q http://domen.ru/script.php

Может быть, надо указывать не урл скрипта, а путь к нему на сервере?..

Roxis
На сайте с 19.11.2006
Offline
40
#3

а теперь слеши лишние

да и не мешало бы при добавлении в крон выполнить команду вручную

cymax
На сайте с 28.08.2007
Offline
16
#4

dotfixa, у вас правда лишние /. Проверьте, как Roxis говорит, просто их командной строки

$ /usr/local/bin/wget/ -O /dev/null/ -q http://domen.ru/script.php

-bash: /usr/local/bin/wget/: Not a directory

$ /usr/local/bin/wget -O /dev/null/ -q http://domen.ru/script.php

/dev/null/: Not a directory

А вот так правильно, без / после wget и /dev/null

$ /usr/local/bin/wget -O /dev/null -q http://domen.ru/script.php

Потом, не обязательно ждать часа ночи. Настройте запись crontab на 5 минут вперед и посмотрите результат. Если все нормально отработало, то переведите на 01:00.

D
На сайте с 28.03.2007
Offline
11
#5

Большое спасибо, все заработало!

Правда теперь у меня возник другой вопрос: один из скриптов, которые мне надо запускать по расписанию, выполняется намного больше 30 секунд (подсчет статистики по большой базе).

Раньше мне приходилось скачивать базу на локалку, где можно снять ограничение по времени, выполнять скрипт, заливать таблицы со статистикой в инет итд... В общем, ужас, очень хочется автоматизации процесса.

Кто-нибудь сталкивался с такой задачей?

cymax
На сайте с 28.08.2007
Offline
16
#6

Ограничение 30 сек на виртуальном хостинге - это максимальная длительность выполнения одного sql-запроса. Оптимизируйте sql и базу так, чтобы не выходить за этот предел, тогда скрипт может молотить запросы часами. Иначе придется перейти на VPS.

B
На сайте с 01.05.2007
Offline
15
#7

dotfixa, вы получаете ошибку "Maximum execution time of 30 seconds exceeded" или что то связанное с mysql или просто пустая страничка?

в общем попробуйте выполнить скрипт бинарным php в обход таймаутам апача и max_execution_time

должно получится примерно так

0 1 * * * /usr/bin/php -f /home/user/public_html/script.php

Bartholomew Jo-Jo
DyaDya
На сайте с 11.04.2007
Offline
147
#8

1. Можно попробовать оптимизироват работу скрипта. Нужно анализировать что жрет столько времени. На общих хостингах это нормальное дело ограничивать время выполнения скриптов, обычно до 30 сек.

2. Если не удается съэкономить достаточно времени, то можно разбить выполенние задачи на части. Но придется продумать логику. Чтобы скрипт выполнялся через определенное время, делал свою работу сколько успеет за 30 секунд. Потом снова запускается и т.д. пока вся работа не будет выполнена.

3. Есть вариант получше, найти хостинг, где нет такого ограничения. Возможно, нужно спросить про специальный тариф или просто у своего хостера спросите, можно ли снять такое ограничение по времени за дополнительную плату лично для Вас. Если Вас уважают, то могут пойти на встречу :).

4. Аренда сервака, это уже тот самый уровень, когда можно делать практически все что вам вздумается... от 1500 р в месяц.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
A4
На сайте с 09.08.2007
Offline
55
#9
DyaDya:
4. Аренда сервака, это уже тот самый уровень, когда можно делать практически все что вам вздумается... от 1500 р в месяц.

VPS/VDS ещё можно, если нагрузка небольшая - может хватить недорогого.

Настройка nginx и сопутствующего софта на freebsd/debian. Контакт через PM.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий