Работа с планировщиком CRON
Планировщик заданий Cron - это один из компонентов операционной системы Linux. Он используется для запуска на хостинге определенных скриптов в нужное время, по расписанию.Примеры таких заданий:
- отправка e-mail с отчетом о работе сайта за сутки;
- создание резервной копии сайта;
- резервное копирование БД;
- и так далее.
Настройка задач Cron через панели управления хостингом
На виртуальном хостинге вы можете управлять задачами в Cron через специальный web-интерфейс.После того, как вы введете данные для настройки задания через панель управления хостингом, они автоматически преобразуются в запись в файле с расписанием задач Cron.
Соответствующий раздел в панелях управления может называться “Cron”, “Crontab” или “Планировщик”. Например, так выглядит настройка Cron у провайдера Timeweb.

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


Через web-интерфейс панели управления даже неопытный пользователь хостинга сможет настроить выполнение необходимых команд, согласно нужному ему расписанию.
Аналогично средства управления задачами Cron встроены в популярные панели управления сервером ISPmanager и cPanel, которые можно установить на VPS/VDS или на выделенный сервер.
ISPmanager
1. В ISPmanager задачи Cron создаются через раздел “Планировщик”.
2. При формировании задачи можно использовать базовый режим с указанием времени исполнения задания в привычной людям форме.

3. Для опытных пользователей предназначен экспертный режим, когда настройки времени исполнения задания делаются так же, как и при редактировании команд Cron вручную.
О редактировании Cron через командную строку читайте ниже.

cPanel
1. В cPanel работа с Cron осуществляется из раздела “Расширенный -> Задания cron”.
2. При редактировании задач в Cron вы можете настроить время исполнения задачи и указать название команды.

Некоторые провайдеры позволяют пользователям виртуального хостинга подключаться к серверу по протоколу SSH и получать доступ к командной строке.
В этом случае для управления задачами в Cron вручную вы можете использовать команду:
Такая же возможность есть и у владельцев VPS/VDS и выделенных серверов.crontab -e
Редактирование Cron через командную строку
Задания в Cron и их расписание описываются в виде текстового файла, состоящего из строк специального формата.Любой пользователь VPS/VDS и выделенных серверов на Linux может самостоятельно добавить задание в Cron с помощью специальной команды сrontab.
При запуске crontab открывается редактор текстового файла с уже имеющимися задачами Cron.
Для новой задачи добавьте строку в этот файл и сохраните его.
Пример: редактирование заданий Cron с помощью команды crontab> crontab -e
# На каждое рождество проиграть мелодию
0 0 25 12 * ogg123 $HOME/sounds/merryxmas.ogg
Каждый день очищать каталог временных файлов
0 3 * * rm /home/tmp/
Запускать задачи в Cron можно с точностью до одной минуты.
Если это необходимо, то задания, запускаемые из Cron, могут записывать отчет о своей работе в журнальные файлы (логи).
1. Чтобы включить запись логов в Cron:
измените
на/etc/rsyslog.conf
2. Добавьте строку:vi /etc/rsyslog.conf
3. Сделайте рестарт rsyslog:cron.* /var/log/cron.log
/etc/init.d/rsyslog restart
Формат записей в Cron
Задания, которые нужно выполнить, описываются в Cron с помощью строк определенного формата.Каждая строка содержит информацию:
- о расписании для запуска задания;
- саму команду, которая его выполняет.
Скрипты могут дополняться специальными параметрами для их запуска, которые отделяются от названия команды пробелами.
Строка описания задачи в Cron начинается с пяти специальных полей, определяющих точное расписание для запуска нужного скрипта.
1. Минуты (от 0 до 59).
2. Часы (от 0 до 23).
3. Дни месяца (от 1 до 31).
4. Месяц (от 1 до 12).
5. Дни недели (от 0 до 6, начиная с воскресенья).
Значения полей разделяются между собой пробелами. Также пробелы отделяют их от названия скрипта для запуска задания.

Если вместо цифр в каком-то из полей указывается символ звездочки “*”, то это означает подстановку всех возможных значений. Например, “*” в поле “день месяца” означает, что команда запускается каждый день.
В полях можно использовать символы:
- запятые - для перечня значений;
- тире - для обозначения промежутка.
Значение “0-5” в поле “дни недели” означает, что команда будет запускаться каждый день, кроме субботы.
Существует возможность описать запуск команд через определенный промежуток времени. Для этого используется символ “/”. Например - “*/15” в поле “минуты” означает запуск команды каждые 15 минут.
Пример записи в Cron30 08 * * * /home/admin/backup
Данная запись означает, что команда “/home/admin/backup” будет запускаться каждый день в 8 часов 30 минут.
Необходимо помнить, что время запуска команд привязано к установленному на сервере времени и часовому поясу. Используемый на сервере часовой пояс (timezone) можно выяснить у технической поддержки хостинга или с помощью команды date из командной строки сервера.
Нюансы и полезные советы при работе с Cron
Команды, которые настраиваются через Cron, запускаются и работают на сервере провайдера от имени конкретного пользователя.Если нужно, чтобы по расписанию открывалась некая страница сайта и исполнялся определенный скрипт, который привязан к ней, то необходимо обеспечить обращение к этой странице по протоколу HTTP (HTTPS) так же, как это происходит при использовании браузера.
Для этой цели на всех серверах хостинга в комплекте программного обеспечения имеется специальная утилита wget, которая умеет обращаться к страницам сайтов по протоколам HTTP и HTTPS. Например, для того, чтобы запускать раз в сутки в три часа ночи запрос по протоколу HTTP-страницы, расположенной по адресу , нужно прописать в CRON следующее:
Другой распространенный вопрос связан с использованием интерпретатора языка программирования PHP для запуска скриптов. Предположим, что скрипты, предназначенные для запуска через Cron, уже готовы и расположены внутри каталога с сайтом в папке scripts.0 3 * * * wget -t 1 -O - http://mysite.ru/cron
Уточните у технической поддержки хостинга полный путь, по которому располагается на сервере хостинга бинарный файл интерпретатора PHP. Обычно этот путь имеет вид, наподобие /usr/bin/php или /usr/local/bin/php.
Также выясните полный путь к корневому каталогу сайта. Эта информацию можно узнать в панели управления хостингом или у технической поддержки. Допустим, полный путь выглядит как “/home/user/www/mysite.ru/”.
Теперь, имея всю необходимую информацию о расположении файлов и папок, можно настроить запуск скрипта “myscript.php” cron в виде такой строки.
Как правило, при работе скриптов через Cron любая выводимая ими информация считается важной и перенаправляется владельцу сайта на его электронную почту. Для того, чтобы запретить работающим через Cron скриптам выводить во время работы любые сообщения, следует добавить в конце строки специальный набор символов-операторов: “>/dev/null 2>&1”. Это выключает любые сообщения от скриптов, в том числе информацию об ошибках.0 3 * * * /usr/bin/php /home/user/www/mysite.ru/scripts/myscript.php
Пример настройки Cron с отключением вывода об ошибках0 3 * * * /home/user/www/mysite.ru/scripts/myscript >/dev/null 2>&1
Выводы
Планировщик Cron используется в операционной системе Linux для управления выполнением задач по расписанию.Для пользователей виртуального хостинга провайдеры предлагают удобный способ настройки выполнения заданий по расписанию через удобный web-интерфейс. Также подобный функционал имеется в панелях управления сервером - ISPManager или cPanel.
Для владельцев виртуальных и выделенных серверов доступна возможность настраивать записи Cron вручную из командной строки сервера с помощью команды crontab.
Источник статьи: https://ru.hostings.info/schools/cron.html