Cron - запуск програм користувача в зазначений час - технічна документація - допомога
В ОС Unix існує можливість запускати програми користувача в зазначений ним час. Для цього використовується програма cron, яка отримує інструкції від користувачів і дотримуючись їх виробляє виконання будь-яких завдань за отриманими сценаріями. Наші клієнти можуть скористатися цією можливістю для виконання періодичних завдань.
Як налаштовувати cron в Особистому кабінеті (для unix-тарифів)
cp.masterhost.ru - Древо послуг - віртуальна майданчик u12345 - 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 хвилин ночі


Як налаштовувати cron в Особистому кабінеті (для windows-тарифів)
Напишіть заявку з Особистого кабінету в відділ "Техпідтримка".
Як налаштовувати cron по ssh
Конфігурація сценаріїв cron проводиться через unix shell. Перш за все потрібно визначити, які програми Ви хочете запускати і дізнатися повні шляхи до них на диску сервера. Для цього перейдіть за допомогою команди cd в каталог, де знаходиться програма, що запускається, і дізнайтеся повний шлях до цього каталогу за допомогою команди pwd. Шлях може виглядати, наприклад, як /home/u12345/scripts/script.pl. Переконайтеся, що файл, який Ви хочете запускати, має права на читання + виконання (r + x) для власника файлу.
Поміняти права на потрібні можна командою:
- для вставки тексту натисніть i. потім вводите текст
- для видалення символів натисніть ESC. а потім наберіть x
- для виходу з vi без збереження змін натисніть ESC. а потім наберіть: q!
- для збереження і виходу натисніть ESC. а потім наберіть: wq
Завдання для cron пишуться по одному в рядку. Після кожного рядка, в тому числі після останньої або єдиною, обов'язково потрібно натиснути enter - інакше завдання працювати не будуть.
Завдання для cron виглядає як рядок, на початку знаходяться п'ять обов'язкових полів для вказівки періодичності завдання, а далі йде команда, яку потрібно запускати:
Значення перших п'яти полів:
- хвилини - число від 0 до 59
- годинник - число від 0 до 23
- день місяця - число від 1 до 31
- номер місяця в році - число від 1 до 12
- день тижня - число від 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:
Виправте помилки та спробуйте зберегти завдання знову.
Подивитися список вже встановлених в cron сценаріїв можна командою crontab -l:
Рекомендація: якщо потрібно запускати якусь програму один раз в день, особливо якщо вона вимагає для виконання великих ресурсів, виконуйте таке завдання вночі, в період з 2 до 8 годин - навантаження на сервери в цей час мінімальна.
Приклади використання cron
Нижче наводяться приклади завдань для cron. Сподіваємося, ця інформація допоможе вам краще зрозуміти роботу цієї програми.
Як запускати PHP-скрипти за розкладом
Ви можете виконувати запуск скриптів на мові PHP в зазначений час з бажаної періодичністю. Для цього потрібно використовувати PHP-CLI інтерпретатор, приклад використання якого описаний тут.
Оскільки не всі PHP-програми можуть працювати через CLI SAPI без попередньої модифікації, можна запускати їх через wget. наприклад:
Якщо в скрипті використовуються функції require. include. причому в них вказані відносні шляхи, то на початку виконуваного скрипта використовуйте виклик функції chdir (). яка задасть поточну робочу директорію.
Як отримувати повідомлення про помилки від програм, що запускаються cron
Якщо при виконанні програми, яка запускається з cron, виникли помилки, напевно ви захочете отримувати повідомлення про ці помилки, щоб повністю контролювати роботу періодично запускаються завдань. Для цього на початку cron-сценарію помістіть такий рядок:
Зверніть увагу на те, що cron буде надсилати поштою то, що виводять запускаються скрипти. Наприклад, якщо ви напишете скрипт, який буде друкувати рядок «Hello, world» і поставите його на виконання через cron, ви будете отримувати поштою лист з рядком «Hello, world» кожен раз, коли cron буде запускати такий скрипт.
Щоб уникнути цього, наприклад коли текст, що виводиться скриптом, вам не потрібен, треба додати в кінець рядка-сценарію для cron символи
Повністю рядок для cron буде виглядати так:
Рекомендуємо перевіряти коректність синтаксису скриптів, які ви встановлюєте на виконання через cron. Скрипти можуть містити помилку, можуть неоднаково працювати при запуску через веб-сервер і через cron, і так далі. Для того, щоб переконатися що скрипт буде правильно працювати через cron, попередньо перевірте його такою командою в unix shell:
Якщо помилок в скрипті немає, ви побачите повідомлення «No syntax errors detected in script.php».
обмеження
Для програм, які запускаються через cron, діють такі ж обмеження по споживаним ресурсів, як для процесів, що запускаються користувачем в unix shell. Йдеться про обмеження на час виконання програми, кількості доступної пам'яті, обмеження на розмір файлів, і так далі.