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


Диспетчер процессов pm2. Выход node.js-сервера в свет.



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. Речь идет об ограничениях на время выполнения программы, количеству доступной памяти, ограничениях на размер файлов, и так далее.

Как создать крон на виртуальном хостинге

В этой статье мы расскажем, как добавить запланированное задание, или крон в cPanel.

При помощи крона можно автоматизировать запуск скрипта или программы и настроить так, чтобы он выполнялся в течение нужного времени и с нужным интервалом в cPanel.

Где создать крон

Чтобы добавить крон:

  1. Зайдите в панель управления виртуальным хостингом cPanel.
  2. Пролистайте вниз страницы и найдите пункт «Запланированные задания» в разделе «Расширенный»:

Не во всех тарифах виртуального хостинга есть функция добавления крона. Если вы не видите этого пункта меню, у вас тариф, где эта функция недоступна.

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

Если этот пункт есть, нажмите на него, чтобы перейти к созданию и настройке крона:

Как создать крон

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

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

Выберите один из вариантов из выпадающего списка или укажите нужные параметры вручную.

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

Если какой-то из параметров не важен, укажите для него значение «*». Это значит, что задача будет выполняться каждый раз, когда наступает соответствующий момент.

Например, если поставить «*» для поля «День», то крон будет срабатывать каждый день.

Задача будет выполнена в тот момент, когда все условия будут совпадать с теми, которые вы настроили.

Пример:
Если параметр «День» указан «Каждый день», а для параметра «День недели» выбран «Понедельник» — задача будет выполняться только по понедельникам.

Но если в параметр «День» указать конкретный день, например 21, а для параметра «День недели» выбран «Понедельник» — задача будет выполнена только в понедельник 21 числа.

Добавьте адрес исполняемого файла или команду для выполнения.

Адрес исполняемого файла укажите в таком формате:

Вместо Username укажите имя пользователя вашего аккаунта cPanel.

Вместо YourScript.php укажите полное название исполняемого файла.

Не меняйте часть пути /usr/bin/php /home/. Измените только вторую часть, указав фактическое месторасположение скрипта, так как он может находиться в любой папке хостинга.

Когда указали все данные, нажмите «Добавить новое запланированное задание». Вы создали крон.

Если хотите получать уведомления о выполнении кронов, нажмите на «Больше» в разделе «Электронная почта Cron» и укажите вашу почту.

Если появятся вопросы или сложности — обращайтесь в службу поддержки.

Настройка CRON на хостинге для автоматического обновления лент Wpgrabber

Довольно часто при использовании плагина Wpgrabber и включении автообновления лент через CRON сайта ленты отказываются сами обновляться. Это зависит нагрузок на сайт, посещаемости, несовместимости или конфликте плагинов и так далее. Также иногда возникает необходимость настроить обновление лент в разные промежутки времени, или обновление определенных лент в нужные период. Именно для всех этих случаев настраивается крон автообновления на хостинге. далее я попытаюсь подробно объяснить, как это делать.

  1. Прежде всего переключаем в админке сайта в настройках плагина на обновление лент Wpgrabber с хостинга:
  2. Переходим на ваш хостинг в панель управления. Там раздел на CRON может везде называться по разному. Это может быть — Планировщик CRON, Управление CRON, Запланированные задачи, CRON-задания и тд. Если не видите ничего подобного — обратитесь в техподдержку хостинга с данным вопросом и вам сразу помогут. Итак, нашли нужное — нажимаем и попадаем в инструмент для настройки Cron задания для обновления лент Wpgrabber. Пример данного инструмента в Cpanel хостинга:
  3. А вот тут столкнемся с определенной трудностью Дело в том, что практически на всех хостингах данные команды для запуска автообновления отличаются. Вернее, команда одна. Нам нужно, чтоб в определенное время, которое мы задали, наш хостинг запустил сам ссылку вида http://наш_сайт/?wpgrun=1 (наш_сайт естественно, замените на свой домен и если у вас протокол https://, то тоже сделайте правку.) Вообще точная ссылка конкретно ваша находится в настройках плагина во вкладке — Автообновление (там, где мы переставляли на обновление с хостинга). И вы можете скопировать ее там. И так, ссылку взяли, определились с временем ( к примеру, нам нужно, чтоб обновлялись ленты раз в час), делаем, собственно, настройку
  4. Вот тут и трудность. Команда для запуска ссылок на хостингах разная! Я буду вам показывать на примере хостинга Fozzy и потом дам еще несколько команд популярных хостингов. Также обычно на странице инструмента Cron есть описание на хостингах примеров команд и их настроек. Но если у вас нет подобного и возникли сложности — пишем техподдержке и задаем конкретно вопрос — «Какую команду нужно мне прописать в кроне хостинга, чтоб она запускала каждый час ссылку вида http://наш_сайт/?wpgrun=1″
  5. На fozzy запуск ссылки задается командой вида: curl -sL http://наш_сайт/?wpgrun=1 . Ее вписываем в поле — Команда. Так, как нам нужно, чтоб обновления были раз в час ежесуточно, то на вкладках: час, день, месяц, день недели ставим звездочку, которая означает — каждый час, каждый день и тд: * А вот в поле — минуты ставим ту цифру, во сколько нам нужно, чтоб ленты обновлялись каждый час. К примеру, чтоб плагин Wpgrabber парсил через 30 минут после начала каждого часа- то и ставим цифру 30:
  6. Далее нажимаем «Добавить запланированное задание» и через несколько секунд обработки получаем само задание:
  7. Переходим на сайт и ждем то время, которое вы указали в настройках крон-задания. Если все правильно сделали — в это время ленты автоматически включатся и спарсят вам новости и так каждый час будет продолжаться.

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

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

/usr/bin/wget http://сайт.ru/?wpgrun=1

mchost.ru

/usr/bin/wget -O /dev/null -q «http://сайт.ru/?wpgrun=1»

firstvds.ru

GET «http://сайт/?wpgrun=1» >/dev/null 2>&1

beget.com/ru

wget -O /dev/null -q ‘http://сайт.ру/?wpgrun=1’

ihc.ru

/usr/bin/wget -O /dev/null -q «http://сайт.ru/?wpgrun=1

reg.ru

sprinthost.ru

fozzy.com

curl -sL http://сайт.ru/?wpgrun=1

Если ничего не подходит и нет подсказки в описании инструмента — обращаемся в техподдержку хостинга за правильной командой.

Рассмотрим вариации запуска разных лент Wpgrabber в разное время с помощью cron-задания на хостинге.

1.Нам нужно, чтоб обновлялась одна конкретная лента в одно и то же время. Значит ставим на крон обновления следующий адрес:

http://сайт.ru/?wpgrun=1&feeds=14

Все то же самое, только вы добавляете id нужной ленты. В нашем случае это id 14. Его нужно брать в «Списке лент» в колонке «ID»:

2.Нам нужно, чтоб обновлялось несколько конкретных лент. Тогда id пишем через запятую, пример:

http://сайт.ru/?wpgrun=1&feeds=5,8,13

тогда включатся ленты, имеющие id 5, 8 и 13.

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

http://сайт.ru/?wpgrun=1&feeds=1-5

Обновятся все ленты с id 1 до 5.

Ну и напоминаю, настройка одного крон-задания для автообновления лент вы всегда можете заказать на данном сервисе. Стоимость — 1 задание 100 руб.

Всего наилучшего и надеюсь, кому-то данная статья поможет!

Отзывы

noicreadca
Мира
Элеонора
Мирон
Млада

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

Success! Your message has been sent.