Cron

Редактор: Марина Долгова 70836 15 мин Аудио

Работа с планировщиком 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 вручную вы можете использовать команду:

crontab -e

Такая же возможность есть и у владельцев VPS/VDS и выделенных серверов.

Редактирование Cron через командную строку

Задания в Cron и их расписание описываются в виде текстового файла, состоящего из строк специального формата. 

Любой пользователь VPS/VDS и выделенных серверов на Linux может самостоятельно добавить задание в Cron с помощью специальной команды сrontab. 

При запуске crontab открывается редактор текстового файла с уже имеющимися задачами Cron. 

Для новой задачи добавьте строку в этот файл и сохраните его.

> crontab -e

# На каждое рождество проиграть мелодию 
0 0 25 12 * ogg123 $HOME/sounds/merryxmas.ogg

Каждый день очищать каталог временных файлов
0 3 *  *   rm /home/tmp/

Пример: редактирование заданий Cron с помощью команды crontab

Запускать задачи в Cron можно  с точностью до одной минуты.

Если это необходимо, то задания, запускаемые из Cron, могут записывать отчет о своей работе в журнальные файлы (логи). 

1. Чтобы включить запись логов в Cron:

измените

 /etc/rsyslog.conf

на

vi /etc/rsyslog.conf

2. Добавьте строку:

cron.* /var/log/cron.log

3. Сделайте рестарт rsyslog:

/etc/init.d/rsyslog restart

Формат записей в Cron

Задания, которые нужно выполнить, описываются в Cron с помощью строк определенного формата. 

Каждая строка содержит информацию:

  • о расписании для запуска задания;
  • саму команду, которая его выполняет. 

Под командой подразумевается название скрипта в файловой системе Linux.

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

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

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

Значения полей разделяются между собой пробелами. Также пробелы отделяют их от названия скрипта для запуска задания.

Если вместо цифр в каком-то из полей указывается символ звездочки “*”, то это означает подстановку всех возможных значений. Например, “*” в поле “день месяца” означает, что команда запускается каждый день.

В полях можно использовать символы:

  • запятые - для перечня значений;
  • тире - для обозначения промежутка. 

Например, значение “5,10,19” в поле “часы” означает, что команда будет запускаться в 5 часов, в 10 часов и в 19 часов. 

Значение “0-5” в поле “дни недели” означает, что команда будет запускаться каждый день, кроме субботы.

Существует возможность описать запуск команд через определенный промежуток времени. Для этого используется символ “/”. Например - “*/15” в поле “минуты” означает запуск команды каждые 15 минут.

30 08 * * * /home/admin/backup

Пример записи в Cron

Данная запись означает, что команда “/home/admin/backup” будет запускаться каждый день в 8 часов 30 минут.

Необходимо помнить, что время запуска команд привязано к установленному на сервере времени и часовому поясу. Используемый на сервере часовой пояс (timezone) можно выяснить у технической поддержки хостинга или с помощью команды date из командной строки сервера.

Нюансы и полезные советы при работе с Cron

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

Если нужно, чтобы по расписанию открывалась некая страница сайта и исполнялся определенный скрипт, который привязан к ней, то необходимо обеспечить обращение к этой странице по протоколу HTTP (HTTPS) так же, как это происходит при использовании браузера. 

Для этой цели на всех серверах хостинга в комплекте программного обеспечения имеется специальная утилита wget, которая умеет обращаться к страницам сайтов по протоколам HTTP и HTTPS. Например, для того, чтобы запускать раз в сутки в три часа ночи запрос по протоколу HTTP-страницы, расположенной по адресу http://mysite.ru/cron, нужно прописать в CRON следующее:

0 3 * * * wget -t 1 -O - http://mysite.ru/cron

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

Уточните у технической поддержки хостинга полный путь, по которому располагается на сервере хостинга бинарный файл интерпретатора PHP. Обычно этот путь имеет вид, наподобие /usr/bin/php или /usr/local/bin/php

Также выясните полный путь к корневому каталогу сайта. Эта информацию можно узнать в панели управления хостингом или у технической поддержки. Допустим, полный путь выглядит как “/home/user/www/mysite.ru/”.

Теперь, имея всю необходимую информацию о расположении файлов и папок, можно настроить запуск скрипта “myscript.php” cron в виде такой строки.

0 3 * * * /usr/bin/php /home/user/www/mysite.ru/scripts/myscript.php

Как правило, при работе скриптов через Cron любая выводимая ими информация считается важной и перенаправляется владельцу сайта на его электронную почту. Для того, чтобы запретить работающим через Cron скриптам выводить во время работы любые сообщения, следует добавить в конце строки специальный набор символов-операторов: “>/dev/null 2>&1”. Это выключает любые сообщения от скриптов, в том числе информацию об ошибках.

0 3 * * * /home/user/www/mysite.ru/scripts/myscript >/dev/null 2>&1

Пример настройки Cron с отключением вывода об ошибках

Выводы

Планировщик Cron используется в операционной системе Linux для управления выполнением задач по расписанию. 

Для пользователей виртуального хостинга провайдеры предлагают удобный способ настройки выполнения заданий по расписанию через удобный web-интерфейс. Также подобный функционал имеется в панелях управления сервером - ISPManager или cPanel.

Для владельцев виртуальных и выделенных серверов доступна возможность настраивать записи Cron вручную из командной строки сервера с помощью команды crontab.

Марина Долгова

Провайдеры предлагающие Linux-хостинг

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
200000
4.9 159

Хостинги с поддержкой MySQL

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
200000
4.9 159

Хостинги с поддержкой PHP

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 392
2
577930
5.0 488
3
200000
4.9 159
Только эксперты отвечают на ваши вопросы
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Вид хостинга

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

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

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

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

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

Тип диска