Настроить крон на хостинге разберем детали


Часть 14. Обновление товаров автоматически по расписанию: через крон сервера



Настройка задания Godaddy cron для запуска скрипта php

вы можете помочь мне настроить работу cron на веб-хостинге godaddy? У меня есть php-файл, который мне нужно запустить, он находится в подкаталоге cron (так адрес http://test.com/cron/file.php ). Что мне нужно написать в поле ввода команды, так что этот файл запущен?

На момент написания этой статьи, на общем хостинге GoDaddy, я не мог использовать следующие команды: ping, curl, nc, lynx

но я МОГУТ использовать: wget

Я успешно создал cron-задание с помощью wget для загрузки файла PHP, содержащего вызов mail() .

  1. войдите в свой аккаунт GoDaddy
  2. нажмите, чтобы развернуть раздел «Веб-хостинг» и найти соответствующий сервер
  3. нажмите кнопку «Управление» (она была помечена как «Запуск»)
  4. на странице «Сведения о хостинге» в разделе «Инструменты» нажмите кнопку «Менеджер заданий Cron»
  5. на странице «Менеджер заданий на Cron» нажмите кнопку «Создать задание Cron»
  6. введите желаемый заголовок и выберите частоту (1 час является наиболее часто используемым разрешением EDIT: GoDaddy добавила 15-минутные приращения к частотным вариантам.)
  7. введите команду ниже (с вашей информацией):

wget http://YOUR_DOMAIN/YOUR_PATH/YOUR_PHP_FILE.php > /dev/null 2>&1

в «YOUR_PHP_FILE.php» введите все действия, которые вы хотите выполнить, и включите вызов mail() (или какой бы почтовый метод вы не захотели использовать при условии, что вы правильно настроили его).

При использовании mail() сервер ретрансляции SMTP уже будет правильно установлен в файле «php.ini» на: relay-hosting.secureserver.net – который вы можете подтвердить с помощью phpinfo() .

Ваша команда задания cron должна выглядеть примерно так: (если ваша структура каталогов не отличается, конечно):

Настройка Cron для общих учетных записей хостинга GoDaddy с использованием Cpanel.

* – >> Работы Cron работают в часовом поясе GoDaddy в Аризоне. Go Daddy ничего не публикует.

Пример: Запуск cron каждый день в 1305 (1:05 ​​pm) тихоокеанское стандартное время.

5 14 * * * / usr / local / bin / php -q /home/username/public_html/scriptname.php

Используйте, например, CURL или wget или lynx .

Если вы используете Godaddy, это должно решить вашу проблему.

Вы можете настроить задания cron через Центр управления хостингом. Ознакомьтесь с официальной страницей GoDaddy здесь: https://www.godaddy.com/help/create-cron-jobs-3548 для справки о ее настройке.

Команда. Поле Command – это скрипт или исполняемый файл, который работает с определенной частотой. Нажмите «Обзор», чтобы найти файл в своей учетной записи хостинга. Полное имя файла вашего выбора помещается в это редактируемое поле. Нажмите значок значка вопроса, чтобы получить дополнительную помощь при выборе команды.

1: Как узнать свой php_path?

2: Как узнать абсолютный путь к вашему файлу?

В Godaddy Linux хостинг. Я использовал эту команду для выполнения задания cron.

Drupal Русскоязычное сообщество

Как правильно настроить крон? На хостинге поддерживается, всё ок.
но там нужно указать промежуток времени. Какой рекомендуете?
И ещё нужно указать команду которую вызывать (путь к ней).
Какие нужно команды вызывать и какие к ним пути?

для того что бы работал поиск, gsitemap.

  • Drupal 5 и более старые версии
  • Блог
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Комментарии

уверен что каждый кто имеет сайт на друпал настраивал это.

насколько я понял запускается он http://имясайта/cron.php.
а для того что бы крон автоматом запускался нужно этот адрес (http://имя сайта/cron.php) прописать в опциях (крона) на хостинге.
а как можно сделать что бы он запускался моментально после обновления. я вижу так сделано на http://drupal.ru

Ну, от хостинга это зависит. На одном из хостингов в панели управления я просто написал:
php /home/myhome/sitedir/cron.php
и установил ежечасный запуск.

На другом все оказалось сложнее. В панели управления я указал (как просили) имя скрипта от корня хостинга. Но это не сработало, видимо из-за того, что в скриптах все пути должны быть абсолютными от корня системы (таковы требования хостера). Пришлось делать маленький cron2.php, в котором написал readfile(http://mysite/cron.php),

Извините, что два раза получилось. Просто сервер вернул 500 ошибку (второй раз за сегодня) и я нажал F5. Как удалить сообщение - не знаю.

Каждый хостер в хелпах выкладывает примеры на некоторые свои сервисы.
На рбк хостинге строчка для крона вида:

  1. 1. Исполнение скрипта каждую пятницу в полночь:
    0 0 * * 5 /usr/local/bin/php /www/supers01/www/htdocs/script.php

  2. 2. Исполнение скрипта в полночь, первого числа, каждый месяц:
    0 0 1 * * /usr/local/bin/php /www/supers01/www/htdocs/script.php

  3. 3. Исполнение скрипта каждый час, каждые десять минут:
    */10 * * * * /usr/local/bin/php /www/supers01/www/htdocs/script.php

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

mkudrin, такой вариант запуска крона для Drupal не подходит!

Требуется как минимум вызов через wget или предложенный выше способ. Плюс еще по сайту ищите, есть другие варианты.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

В cron.php надо в начало прописать каоманду chdir (/usr/local/ и т.д. к каталогу где лежит cron.php),

Я сделал следующим образом (Debian Lenny):

т.е., первые пять звездочек - время запуска (кто не знает в Википедии найдет),
www-data - запускаем с правами апача,
-O /tmp/cron - сохраняем скачанный cron.php в своем компьютере, иначе cron все время пишет ошибку не могу записать в файл (Cannot write to `cron.php (Permission denied).)
http: //mysite.net/cron.php - меняем на адрес реального сайта

Замучился с настройкой на VPS.
Но в итоге сработало:
/usr/bin/wget -q http://www.SITENAME.ru/cron.php

Так. Может кому-то пригодится. Только что на sweb настроил cron так:

где */7 - запускать каждые 7 часов

Команду подсмотрел в видео от лукобота:
wget -O - -q -t 1 http://имя_сайта.ru/cron.php

Убил больше часа, чтобы найти как настроить крон на Debian. Вот рабочий вариант, который удалось нарыть.
45 * * * * /usr/bin/wget -O - -q -t 1 http://site.ru/cron.php

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Убил больше часа, чтобы найти как настроить крон на Debian. Вот рабочий вариант, который удалось нарыть.
45 * * * * /usr/bin/wget -O - -q -t 1 http://site.ru/cron.php

Работает, спасибо. Ставил в ISP manager, там периодичность не надо (выбирается отдельно), только команду.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

самое простое решение - внешний вебкрон юзать. Удобно, что настройки всех сайтов в одном месте и не надо приспосабливаться к особенностям хостера. А при переезде даже переделывать ничего не нужно. Команда, как обычно: http://имя сайта/cron.php

Хм. А какие особенности хостера, если данная утилита является стандартной для всех дистрибутивов?

не стандартная она. По крайней мере, хостеры так не считают. У одних wget надо юзать, у других php. Пути разные в общем случае. У кого-то вообще нету ничего или тупо не работает. Нету - имеется ввиду, что доступа нет.

то что вы вписываете в кронтаб, это уже ваши жопные боли, которые возникают от незнания среды где вы работаете.
Сама утилита crontab как и демон cron, являются стандартным механизмом.

Cron — запуск программ пользователя в указанное время

В ОС Unix существует возможность запускать программы пользователя в указанное им время. Для этого используется программа cron, которая получает инструкции от пользователей и, следуя им, производит выполнение любых задач по полученным сценариям. Наши клиенты могут пользоваться данной возможностью для выполнения периодических задач.

Как настраивать cron в Личном кабинете (для unix-тарифов)

cp.masterhost.ru — Древо услуг — виртуальная площадка u12345 — cron — изменить.

Чтобы редактировать уже добавленные cron-сценарии и создавать новые, нажмите загрузить. Вы увидите список Ваших сценариев. Их можно редактировать, остановить на время выполнение или удалить окончательно:

Чтобы добавить новые задания, нажмите создать задание. Откроется интерактивный редактор cron-сценариев :

В поле Команда укажите полный путь до скрипта или команду, которая должна выполняться. Например, полный путь до файла script.pl, размещенного в корне Вашей площадки, будет выглядеть так:

Убедитесь, что файл, который Вы хотите запускать, имеет права на чтение+исполнение (r+x) для владельца файла. Поменять права на нужные можно командой:

Вы можете выполнять запуск скриптов на языке PHP в указанное время с желаемой периодичностью. Для этого требуется использовать PHP-CLI интерпретатор , пример использования которого описан здесь. Команда на запуск скрипта script.php может выглядеть, например, так:

Поскольку не все PHP-программы могут работать через CLI SAPI без предварительной модификации, можно запускать их через wget. Например:

Обратите внимание, что путь до утилит нужно указывать полностью, от корня файловой системы. Если в скрипте используются функции require, include, причём в них указаны относительные пути, то в начале выполняемого скрипта используйте вызов функции chdir(), которая задаст текущую рабочую директорию.

Далее нужно выбрать периодичность, с которой будет запускаться Ваш сценарий. Вы выбираете один из вариантов в каждой из 5 колонок: минуты (точное значение от 00 до 59 либо период), часы (от 00 до 23 либо период), день, месяц и день недели. Примеры:

выполнять задание раз в час в 05 минут

выполнять задание по понедельникам в 1 час 15 минут ночи

выполнять задание 5 апреля в 0 часов 1 минуту каждый год

Последнее поле – Комментарий – является необязательным. В нем Вы можете указать дополнительные инструкции для crontab – например, почтовый адрес для получения результатов выполнения Вашего скрипта. Для этого в комментарий добавьте такую строку:

Вместо mail@box.ru укажите Ваш почтовый ящик. Если нужно получать сообщения об ошибках на несколько адресов, укажите все эти адреса через запятую. С помощью комментариев Вы можете установить переменные окружения (HOME, PATH, SHELL и т.д. ).

Когда все поля будут заполнены (кроме поля комментарий, оно необязательное), нажмите Добавить и Сохранить изменения .

Как настраивать cron в Личном кабинете (для windows-тарифов)

Напишите заявку из Личного кабинета в отдел Техподдержка.

Как настраивать cron по ssh

Конфигурирование сценариев cron производится через unix shell. Прежде всего нужно определить, какие программы Вы хотите запускать и узнать полные пути к ним на диске сервера. Для этого перейдите с помощью команды cd в каталог, где находится запускаемая программа, и узнайте полный путь к этому каталогу с помощью команды pwd. Путь может выглядеть, например, как /home/u12345/scripts/script.pl. Убедитесь, что файл, который Вы хотите запускать, имеет права на чтение+исполнение (r+x) для владельца файла.

Поменять права на нужные можно командой:

Далее выполните команду crontab -e. Вы окажетесь в текстовом редакторе vi, где сможете вводить текст сценария для cron. Краткая справка по редактору vi:

  • для вставки текста нажмите i, затем вводите текст
  • для удаления символов нажмите ESC, а затем наберите x
  • для выхода из vi без сохранения изменений нажмите ESC, а затем наберите :q!
  • для сохранения и выхода нажмите ESC, а затем наберите :wq

Задания для cron пишутся по одному в строке. После каждой строки, в том числе после последней или единственной, обязательно нужно нажать enter — иначе задания работать не будут.

Задание для cron выглядит как строка, в начале находятся пять обязательных полей для указания периодичности задания, а далее следует команда, которую нужно запускать:

Значения первых пяти полей:

  1. минуты — число от 0 до 59
  2. часы — число от 0 до 23
  3. день месяца — число от 1 до 31
  4. номер месяца в году — число от 1 до 12
  5. день недели — число от 0 до 7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)

Для каждого конкретного параметра можно задать несколько значений через запятую. Например, если в поле «часы» написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа. Можно задать интервал — 4-9 будет означать, что программу нужно запускать каждый час в период с 4 до 9 часов включительно. Символ * означает «все возможные значения». Например, указание * в поле «часы» будет означать «запускать каждый час». Символ / служит для указания дополнительной периодичности задания. Например, */3 в поле «часы» означает «каждые три часа».

Примечание: если определены оба поля день месяца и день недели (т.е не равны *), то такое задание будет выполняться в каждый указанный день недели независимо от дня месяца. Например, следующая команда будет выполняться в 13 часов 13 минут каждую пятницу и каждое 10 число месяца, даже если 10 число не совпадет с пятницей.

Итак, как выглядит простейший сценарий cron:

Скрипт /home/u12345/script.pl будет автоматически запускаться каждые три часа во вторник и в пятницу. Введя такой сценарий в редакторе vi, выйдите с сохранением результатов редактирования, и, если Вы не допустили ошибок, задание будет поставлено на выполнение с указанной периодичностью. Если при редактировании были допущены ошибки, cron сообщит Вам о них.

Исправьте ошибки и попробуйте сохранить задание опять.

Посмотреть список уже установленных в cron сценариев можно командой crontab -l:

Рекомендация: если требуется запускать какую-то программу один раз в день, особенно если она требует для выполнения больших ресурсов, выполняйте такое задание ночью, в период с 2 до 8 часов — нагрузка на серверы в это время минимальна.

Примеры использования cron

Ниже приводятся примеры заданий для cron. Надеемся, эта информация поможет вам лучше понять работу этой программы.

Как запускать PHP-скрипты по расписанию

Вы можете выполнять запуск скриптов на языке PHP в указанное время с желаемой периодичностью. Для этого требуется использовать PHP-CLI интерпретатор, пример использования которого описан здесь.

Поскольку не все PHP-программы могут работать через CLI SAPI без предварительной модификации, можно запускать их через wget. Например:

Если в скрипте используются функции require, include, причём в них указаны относительные пути, то в начале выполняемого скрипта используйте вызов функции chdir(), которая задаст текущую рабочую директорию.

Как получать сообщения об ошибках от программ, запускаемых cron

Если при выполнении программы, которая запускается из cron, возникли ошибки, наверняка вы захотите получать сообщения об этих ошибках, чтобы полностью контролировать работу периодически запускаемых заданий. Для этого в начале cron-сценария поместите такую строку:

Конечно, адрес@домен.ru нужно заменить на реально существующий адрес электронной почты куда надо будет доставлять уведомления. Если нужно получать сообщения об ошибках на несколько адресов, укажите все эти адреса через запятую.

Обратите внимание на то, что cron будет присылать по почте то, что выводят запускаемые скрипты. Например, если вы напишете скрипт, который будет печатать строчку «Hello, world» и поставите его на выполнение через cron, вы будете получать по почте письмо со строкой «Hello, world» каждый раз, когда cron будет запускать такой скрипт.

Чтобы избежать этого, например, когда текст, выводимый скриптом, вам не нужен, надо добавить в конец строки-сценария для cron символы

Полностью строка для cron будет выглядеть так:

Рекомендуем проверять корректность синтаксиса скриптов, которые вы устанавливаете на выполнение через cron. Скрипты могут содержать ошибку, могут неодинаково работать при запуске через веб-сервер и через cron, и так далее. Для того, чтобы убедиться, что скрипт будет правильно работать через cron, предварительно проверьте его такой командой в unix shell:

Если ошибок в скрипте нет, вы увидите сообщение «No syntax errors detected in script.php».

Ограничения

Для программ, которые запускаются через cron, действуют такие же ограничения по потребляемым ресурсам, как для процессов, запускаемых пользователем в unix shell. Речь идет об ограничениях на время выполнения программы, количеству доступной памяти, ограничениях на размер файлов, и так далее.

Отзывы

Милана
inokob
Чеслав
Лев
Конкордия

Написать отзыв

Success! Your message has been sent.