Освоение задания Cron и автоматизация основных задач сервера

Статья написана:
  • Избранные статьи
  • Обновлено: сентябрь 06, 2017

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

С этой целью почти каждый сервер, основанный на Unix или Linux, предлагает автоматизированный диспетчер задач, известный как "Cron Job»Или« Кронтаб ».

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

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

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

Научиться определять время, используя формат задания Крона

Работу с Cron не так-то просто освоить; на самом деле, это широко считается одной из самых передовых конфигураций, доступных на стандартном Linux or Юникс веб сервер. Частично это объясняется тем, что язык, используемый для программирования этих заданий, настолько архаичен и в некоторых случаях полностью обратный. Когда дело доходит до того, чтобы сказать определенное время на задание Cron или на вкладке Cron, все, конечно, обратное, перевернутое и немного запутанное.

Формат сообщения времени через задание Cron таков:

MINUTE HOUR DAY-OF MONTH MONTH DAY-OF-WEEK COMMAND

Это все одна строка, и четное число и команда соседствуют в одном равномерном сокращении. Этого достаточно, чтобы заставить большинства разработчиков и операторов серверов вздрогнуть, и, фактически, многие из них так и делают, пока не научатся разрабатывать эффективную работу Cron.

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

Поэтому давайте настроим задание Cron для 10: 30 в июле 7th, чтобы понять, как выглядит время задания Cron, когда оно превращается в строго числа.

30 10 07 07 *

В приведенном выше примере указано, что задание должно быть выполнено в 30-ой минуте десятого часа седьмого дня седьмого месяца. Все числа состоят из двух цифр, даже если месяц или день состоят только из одной цифры. Это важно помнить, так как одна цифра часто приводит к тому, что задание Cron становится недействительным, и оно просто никогда не будет выполнено. В конце структуры con, звездочка означает, что задание должно выполняться в любой день недели. Это важно, поскольку установка для среды 03 для среды будет означать, что задача будет выполнена только в июле 7th, если бы этот день был вторником. Это может происходить один раз в семь или восемь лет, что мало для большинства разработчиков.

Еще одно важное соображение, которое необходимо сделать при создании задания Cron, заключается в том, что часовой формат - это время в 24-часовом режиме, а не 12-часовое гражданское время. Чтобы изменить время задания Cron на 10 pm, час будет изменен на 22 вместо текущего 10.

Примеры работы Cron

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

  • @ежедневно
  • @monthly
  • @yearly

Поскольку время нельзя строго контролировать и определять с помощью часов и минут, эти задания будут выполняться ровно в полночь, согласно внутреннему времени сервера, в запрашиваемом интервале. Это означает, что интервал @monthly будет происходить ровно в полночь первого дня каждого месяца. @Yearly интервал будет происходить ровно в полночь в первый день каждого года; и интервал @daily будет происходить ровно в полночь каждый день года.

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

Схват переменной «КОМАНДА» и что с ней делать

Как видно из приведенного выше примера, создание фактического задания Cron относительно просто. Сначала должна быть определена дата, а затем сразу же определяется функция задания Cron. Эта функция может быть буквально любой, включая запуск сценария PHP или запуск специального сценария резервного копирования, который хранит файлы и данные сервера в удаленном или локальном файле. Для пояснения мы будем опираться на ранее использовавшийся пример и проинструктируем задание Cron запускать PHP-скрипт в июле 7th на 10: 30 утром. Этот сценарий PHP будет называться «backup.php», и мы будем предполагать, что файл PHP представляет собой сценарий полного резервного копирования, который собирает, сжимает и хранит файлы сайта в седьмой день месяца по указанию сервера. Вот как это выглядит:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Когда это задание Cron заносится в список вкладок Cron сервера, оно будет автоматически выполняться в 10: 30 am каждый июль 7th каждого года. Он запустит скрипт резервного копирования PHP, который находится в каталоге «backup-scripts», и именно здесь работает настоящий гений настройки задания Cron.

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

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

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

Освоение общего файла вкладки Cron на типичном сервере

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

crontab -r

Эта команда удаляет (то есть «r») или удаляет весь сам файл вкладки Cron. Это эффективно очистит его от всех команд и автоматизированных сценариев и восстановит его в пустой файл, который можно восстановить. Это подходящий вариант для тех, кому удалось испортить файл или каким-то неуместным задачам и временам. Иногда проще начать все сначала.

кронтаб -e

В этом случае «e» означает «редактировать». Те пользователи, которые хотят редактировать функции, описанные на вкладке Cron, а не полностью удалять файл, могут использовать эту команду для перехода к редактору командной строки, который позволит им добавлять новые задачи, удалять старые или изменять подходящее время расписания для каждого задания Cron, указанного в документе вкладки Cron.

crontab -l

В этом случае достаточно легко запомнить, связав «L» с «взглядом». Эта команда позволяет администратору сервера просто просматривать все содержимое их файла вкладки Cron, не удаляя его полностью с сервера и не имея возможности редактировать содержимое. Это доступное только для чтения отображение содержимого вкладки Cron идеально подходит для запоминания того, какие задачи запланированы на какое время, и для проверки целостности самого файла.

Почему важно освоить задание Cron и файлы автоматизации вкладки Cron

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

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

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

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

Легкость в освоении и упрощение развертывания

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

Процесс лежит в стандартной командной строке и разбивает каждый сегмент времени на двузначный код.

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

О Джерри Лоу

Основатель WebHostingSecretRevealed.net (WHSR) - обзора хостинга, которому доверяют и используют пользователи 100,000. Более чем 15-летний опыт в веб-хостинге, партнерском маркетинге и SEO. Вкладчик в ProBlogger.net, Business.com, SocialMediaToday.com и многое другое.

Подключение: