Использование cron хостинг разберем детали


Хостинг hostmonster.com. Планировщик Cron.



Использование cron хостинг,

Планировщик задач (Cron jobs)

Cron jobs (Планировщик задач) дает возможность автоматизировать повторяющиеся задания на сервере. Например, Вы можете добавить задание, которое заключается в автоматическом копировании базы данных MySQL в определенное место на Вашем сайте, в результате чего получается резервная копия.

Вы можете добавить задание, используя два различных режима:

Standard (Стандартный) - Предоставляет ряд предварительно установленных опций заданий, из которых Вы можете сделать выбор. Это наиболее легкий метод и он рекоммендуется для использования.
Advanced (Продвинутый) (Unix Style) (В стиле Unix) - Предоставляет ряд обычных опций заданий в стиле Unix. Рекомендуется для тех пользователей, которые привыкли его использовать в качестве планировщика заданий.

Добавление и редактирование заданий

Для того, чтобы добавить или модифицировать задание:

1 Нажмите на кнопку Cron jobs (Планировщик задач), расположенную на главной странице панели управления CPanel.
2 Если Вы хотите использовать Стандартный режим, кликните на кнопку Standard (Стандартный).
3 В верхнее поле введите электронный адрес, на который будут посланы результаты выполнения задания.
4 В поле Command (Команда) введите команду, которую Вы хотите выполнить.
5 Выберите и кликните на одну опцию из каждого списка.
6 Нажмите на кнопку Save Crontab (Сохранить задание).
Примечание: Вы всегда можете кликнуть на кнопку Reset Changes (Восстановить Измененное) и задания восстановятся в том виде, в каком они были прежде.
7 Если Вы хотите использовать Продвинутый режим, кликните на кнопку Advanced (Продвинутый) (Unix Style)(Стиль Unix).
8 Введите время для заданий в поля Minute (Минуты), Hour (Час), Day (День), Month (Месяц), или Weekday (День Недели).
9 Введите скрипт планировщика заданий в поле Command (Команда).
10 Нажмите на кнопку Commit Changes (Сделать изменения).
Примечание: Вы всегда можете кликнуть на кнопку Reset Changes (Восстановить Измененное) и задания восстановятся в том виде, в каком они были прежде.

Удалите задание, если не нужно, чтобы команда выполнялась автоматически.

Для того, чтобы удалить задание:

1 Нажмите на кнопку Cron jobs (Планировщик задач), расположенную на главной странице панели управления CPanel.
2 Нажмите на кнопку Standard (Стандартный) или Advanced (Продвинутый) (Unix Style) (Стиль Unix ).
3 Нажмите на кнопку Delete (Удалить), расположенную рядом с тем заданием, которое Вы хотите удалить. ?

Что такое cron

cron - демон, предназначенный для выполнения команд по расписанию. Планирование заключается в формаровании специальных текстовых файлов, содержащих инструкции для cron.

Можно предположить, что неоднократно уличенные в любви к греческой мифологии разработчики unix неслучайно выбрали такое имя. Примерно так греки называли бога, олицетворявшего представление о времени. Так как unix-way предполагает краткость везде, где только можно, имя бога урезали: с Cronus (англоязычного написания) до Cron, сделав его при этом абсолютно идентичным русскому Крон.

Как cron работает

Утилита cron использует файлы, названные идентично именам пользователей из /etc/passwd, и лежащие в /var/cron/tabs, для выполнения команд этих пользователей. Демон сам загружает их в оперативную память вместе с главным файлом /etc/crontab, имеющим несколько другой формат.

К примеру, на нашем хостинге утилита cron использует файлы с именами вида host12345, для планирования каких-либо действий пользователя host12345.

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

Есть некоторая разница в механизме исполнения команд из файла /etc/crontab и личных файлов пользователей /var/cron/tabs, которая заключается в проверке статуса пользователя. Для файлов /var/cron/tabs такая проверка выполняется для владельца аккаунта (с помощью модуля pam), для файла /etc/crontab - нет, команды из этого файла выполняются безусловно.

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

Использование cron

Для редактирования файла crontab вашего пользователя используется команда:

Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых тире, или символ *. Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами. Если команда отправляет какой-нибудь текст в стандартный вывод, этот текст отправляется по e-mail пользователю.

Пример файла crontab:

Как создать и отредактировать свой конфигурационный файл?

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

Способ первый – прямое редактирование через crontab.

  • Наберите в командной строке команду crontab -e. Откроется редактор vi с содержимым вашего конфигурационного файла. Если это первый запуск crontab‘а, то файл будет пустой.
  • Отредактируйте содержимое.
  • Выйдите из редактора. Crontab автоматически даст команду демону cron перечитать Ваш файл.

У этого способа есть один недостаток – редактор vi, в котором открывается файл, довольно сложен в использовании и требует определенного опыта и навыков.

Чтобы сменить редактор на более удобный, перед редактированием конфигурационного файла cron Вы можете добавить строку export EDITOR=mcedit в файл /home/login/.bash_profile, отредактировав файл с помощью команды mcedit

Способ второй – приказ демону cron перечитать готовый файл. Этот способ проще в использовании.

  • Создайте конфигурационный файл на сервере командой touch имя_файла.
  • Отредактируйте его в привычном для Вас редакторе, например в FAR ‘е.
  • Если Вам не нравится редактировать файл на сервере, то Вы можете создать и отредактировать файл на своем компьютере и затем закачать его на сервер по FTP . * Выполните команду crontab имя_файла. Crontab при этом даст команду демону cron перечитать Ваш файл.

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

Что нужно писать в конфигурационном файле?

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

  1. Минуты (0-59)
  2. Часы (0-23)
  3. День месяца (1-31)
  4. Месяц в году (1-12)
  5. День недели (0-6, при этом 0 означает воскресенье)
  6. Программа, которая будет запущена

Каждое из первых 5 полей может быть записано несколькими способами:

  1. Символом * (означает любое значение)
  2. Списком через запятую (1,2,3)
  3. Диапазоном через тире (1-31)
  4. Шагом значений диапазона (например */2 означает через_раз)

Кроме того, Вы можете получать по почте результаты и ошибки выполнения программ, запускаемых демоном cron по расписанию. Для этого в конфигурационном файле напишите MAILTO =ваш_email_адрес.

Где я могу получить дополнительную информацию?

Для получения дополнительной информации по этой теме можно воспользоваться встроенной справочной системой, набрав в командной строке сервера:
man cron – описание особенностей функционирования cron
man 1 crontab – описание способов использования crontab
man 5 crontab – описание формата конфигурационных файлов для cron

Как запускать php скрипт из cron’a?

Строка в кронфайле, запускающая php скрипт выглядит так:

где /usr/local/bin/php – путь до php-интерпретатора (на различных серверах путь может быть разным. Выяснить путь можно с помощью команды which php),
/home/user/www/site1/public_html/script.php – путь до скрипта необходимо указывать от корня сервера.

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

Для запуска php-скриптов методом GET из cron`a используют утилиту wget. Строка записи cron-файла выглядит так:
* * * * * /usr/local/bin/wget http://имя_домена/script.php?var1=xxx&var2=yyy
Где /usr/local/bin/wget – путь до утилиты wget,
http://имя_домена/script.php?var1=xxx&var2=yyy – ссылка на скрипт.
В случае, если Вы не хотите, чтобы полученный от скрипта вывод сохранялся в файле, можно использовать вместо wget программу GET .

Как запустить perl скрипт из cron’a?

Для запуска perl-скриптов указывать путь до интерпретатора не нужно, так как путь уже указан в заголовке самого скрипта.

Если что-то не получается, всегда можно спросить у нас.

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

Отзывы

Самсон
Стела
Фока
bloodicmaubull
Доброслав

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

Success! Your message has been sent.