admin / 17.03.2018
Содержание
Категория:Виртуальный хостинг -> Сервисы и средства разработки
Содержание
Cron – средство запуска программ по расписанию
В операционной системе UNIX и ей подобных для запуска программ по расписанию используется механизм, называемый cron. Пользователь, желающий запускать свои программы по расписанию, создает конфигурационный файл, куда записывает расписание запуска программ. Данный конфигурационный файл каждую минуту просматривается cron‘ом и запускаются те программы, время запуска которых подошло.
Редактируется конфигурационный файл с помощью программы crontab. Программы, запускаемые cron, исполняются от имени пользователя – владельца соответствующего конфигурационного файла.
Редактировать конфигурационный файл можно двумя способами.
Способ первый – прямое редактирование через crontab.
У этого способа есть один недостаток – редактор vi, в котором открывается файл, довольно сложен в использовании и требует определенного опыта и навыков.
Чтобы сменить редактор на более удобный, перед редактированием конфигурационного файла cron Вы можете добавить строку в файл /home/login/.bash_profile, отредактировав файл с помощью команды .
Способ второй – приказ демону cron перечитать готовый файл. Этот способ проще в использовании.
Имейте в виду, для того, чтобы любое изменение конфигурационного файла вступило в силу, необходимо снова выполнить команду crontab имя_файла. При этом все предыдущие настройки crontab будут перезаписаны новыми. Кроме того, не следует путать конфигурационный файл crontab с тем файлом, который создаете Вы сами. Команда crontab имя_файла копирует содержимое Вашего файла в специальный файл crontab, после этого Ваш файл в процессе больше не участвует.
Конфигурационный файл состоит из строк, каждая из которых описывает программу, которая будет запускаться по расписанию. Каждая строка состоит из 6 полей, поля отделяются друг от друга пробелом или табуляцией. Поля имеют следующее назначение:
Каждое из первых 5 полей может быть записано несколькими способами:
Кроме того, Вы можете получать по почте результаты и ошибки выполнения программ, запускаемых демоном cron по расписанию. Для этого в конфигурационном файле напишите MAILTO=ваш_email_адрес.
Для получения дополнительной информации по этой теме можно воспользоваться встроенной справочной системой, набрав в командной строке сервера:
man cron – описание особенностей функционирования cron
man 1 crontab – описание способов использования crontab
man 5 crontab – описание формата конфигурационных файлов для cron
Строка в кронфайле, запускающая php скрипт выглядит так:
где — путь до php-интерпретатора версии 5.4, а — полный путь до скрипта.
Полный список интерпритаторов php разных версий:
/usr/local/php4/bin/php /usr/local/php5/bin/php /usr/local/php53/bin/php /usr/local/php54/bin/php /usr/local/php55/bin/php /usr/local/php56/bin/php
Для запуска php-скриптов методом GET из cron`a используют утилиту wget. Строка записи cron-файла выглядит так:
Где /usr/local/bin/wget – путь до утилиты wget;
http://имя_домена/script.php?var1=xxx&var2=yyy – ссылка на скрипт.
В случае, если Вы не хотите, чтобы полученный от скрипта вывод сохранялся в файле, можно использовать вместо wget программу GET.
Для запуска perl-скриптов указывать путь до интерпретатора не нужно, так как путь уже указан в заголовке самого скрипта.
В панели есть возможность управлять запуском скриптов по расписанию.
Опция доступна для всех пользователей, чьи тарифные планы поддерживают cron. Для создания конфигурационного файла откройте в панели управления пункт Crontab в меню Управление.
Описание:
int sleep ( int $seconds )
Откладывает исполнение программы на число секунд, заданное параметром seconds.
Список параметров:
seconds
Время остановки в секундах.
Возвращаемые значения:
Возвращает 0 при успешном выполнении или FALSE при ошибке.
Если вызов был прерван сигналом, функция sleep() возвратит значение, не равное нулю. В Windows это значение всегда будет равно 192 (значение константы Windows API WAIT_IO_COMPLETION). На других платформах возвращаемое значение будет числом оставшихся секунд.
Ошибки:
Если указанное число секунд в параметре seconds отрицательно, то функция создаст исключение уровня E_WARNING.
Примеры:
Пример #1 Пример использования sleep()
// текущее время echo date(‘h:i:s’) . "\n"; // ожидание в течении 10 секунд sleep(10); // завершение ожидания echo date(‘h:i:s’) . "\n";
Этот пример выведет (через 10 секунд):
05:31:23
05:31:33
18.02.2015
Cron (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время.
Управлять cron нужно с помощью команды ‘crontab’.
Команда покажет список текущих заданий, автоматически запустит текстовый редактор и загрузит в него файл конфигурации cron. После выхода из редактора, новая конфигурация cron будет установлена (вступит в силу) автоматически.
Конфигурационный файл содержит последовательность командных строк и расписание их вызова.
Пустые строки и строки, начинающиеся с символа ‘#’ игнорируются. Остальные строки являются установками переменных окружения и командами cron.
Запись crontab- файла в общем случае состоит из семи полей:
минуты часы день месяц день_недели имя_пользователя команда
Допустимые значения временных параметров:
Параметр | Допустимый интервал |
минуты | 0-59 |
часы | 0-23 |
день месяца | 1-31 |
месяц | 1-12 |
день недели | 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс) |
Поле может быть задано явно или шаблоном:
Пример готовой строки сценария cron:
# Выполнять задание в 18 часов 7 минут 13 мая если это пятница
7 18 13 5 5 /home/www/myscript.pl
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.pl
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.pl
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.pl
Для выполнения php скриптов из cron необходим бинарный интерпретатора PHP.
Реальный путь на сервере к корневой директории сайта и путь к PHP уточните в службе поддержки хостинга.
# Пример запуска скрипта в 5 утра каждый день:
0 5 * * * /usr/bin/php -q /home/www/script.php
Обратите внимание, при запуске из cron опция -q указывает PHP не выдавать HTTP-заголовки.
Не нашли ответ на свой вопрос в документации?
Направьте обращение в или онлайн чат.
|
||
Адинэснег
03.03.11 — 10:49 |
Есть сайт на php+mysql, крутящийся на Apache. Необходимо с определенной периодичностью выполнять некий скрипт php. Например, раз в 10 минут. Как правильно реализовать? Апач может быть как вендовый так и под линем. |
|
Адинэснег
1 — 03.03.11 — 10:54 |
cron? |
|
План счетов
2 — 03.03.11 — 10:55 |
Обновление страницы раз в 10 минут. |
|
Адинэснег
3 — 03.03.11 — 10:56 |
(2) ыыы) мне не на клиентской стороне надо скрипт выполнять, а на серверной |
|
План счетов
4 — 03.03.11 — 10:58 |
(3) а php на серевре выполняется)) запускать IE как com |
|
Адинэснег
5 — 03.03.11 — 11:07 |
блин, фигово, что как регламентных заданий в 1с нет |
|
Asmody
6 — 03.03.11 — 11:17 |
(0) crontab -e |
|
Адинэснег
7 — 03.03.11 — 11:50 |
(6) дак так и придется, лана хоть под вынь тож есть крон |
|
Torquader
8 — 04.03.11 — 01:41 |
Вообще-то, у последнего MySql есть «запланированные задания» — это для того, чтобы что-то в базе поменять — как бы — если вам нужно только в базе, то пишем «хранимку» и в путь. Как настроить запуск php скрипта через cron (php-fpm)?А так — php можно и из командной строки запускать, вот только к apache это никакого отношения не имеет. |
|
smaharbA
9 — 04.03.11 — 02:02 |
фигня какая то |
|
Адинэснег
10 — 04.03.11 — 08:39 |
кароче забил на задания, скрипт выполняется при интерактивных действиях, надеюсь не затупит работу пользователей ![]() |
|
МаленькийВопросик
11 — 04.03.11 — 08:40 |
<META HTTP-EQUIV=»Refresh» Content=»3; URL=index.html»> |
|
МаленькийВопросик
12 — 04.03.11 — 08:41 |
вот так попроще… |
|
Адинэснег
13 — 04.03.11 — 09:50 |
(12)скажем на внешнего фтп мне надо на сервер грузить по расписанию zip файлы и обрабатывая их заполнять mysql, зачем мне ваши рефреш’ы в браузере?))))) |
|
Ангел-Хоронитель
14 — 04.03.11 — 10:29 |
(10)(13)попробуй |
|
Ангел-Хоронитель
15 — 04.03.11 — 10:29 |
+(14)ник сменить. а то совсем соответствуешь |
|
casufi
16 — 04.03.11 — 11:11 |
(10) Странный ты человек, на всю голову. Нормальная практика — регламентные задачи выполнять при помощи планировщика, будь то линуксовый крон, виндовый at или nncron. Чем тебе это не подходит ? |
|
Адинэснег
17 — 04.03.11 — 12:13 |
(16)->(7) уже кагбэ решен вопрос, тут просто некротопикфилы периодически поднимают ветку 😀 |
TurboConf 5 — расширение возможностей Конфигуратора 1С
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
FILED UNDER : IT