Главная / Статьи / Руководства по веб-хостингу / Освоение задания Cron и автоматизация основных задач сервера

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

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

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

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

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

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

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

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

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

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

Это все одна строка, и даже число и команда идут рядом в одном единообразном сокращении. Этого достаточно, чтобы большинство разработчиков и сервер operaТоры вздрагивают, и на самом деле многие из них вздрагивают, пока не научатся разрабатывать эффективную работу 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 обеспечивает простое использование переменных, которые определяют, когда задание выполняется на этих частых интервалах. Они включают:

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

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

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

Как понять переменную "КОМАНДА" и что с ней делать

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

30 10 07 07 * http://ваше-доменное-имя.com/backup-scripts/backup.php

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

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

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

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

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

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

crontab -r

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

кронтаб -e

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

crontab -l

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

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

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

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

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

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

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

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

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

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

Фото автора

Статья Джерри Лоу

Продолжают Читать