Cron
Работа с планировщиком 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 |
-
Как сделать периодичность cron-задания меньше минуты?
- 06/12/2016
- Просмотров 4082
1 ответ -
Подскажите, как поставить крон-задачу?
- 28/01/2017
- Просмотров 3659
1 ответ
От панели управления зависит ваше удобство в настройке хостинге\сайта.
Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.
Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.
Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.
VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.
Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.
Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.
CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.
Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).
Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).
Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.
Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".
Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.
Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.
Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.
Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.
Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.
На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.
ASP.NET - платформа для разработки веб-приложений от Майкрософт.
ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.