В процессе ежедневной работы с будь то Linux или иными дистрибутивами возникает список задач, которые необходимо выполнять ежечасно, ежедневно или каждый месяц. Однако никто не отменял человеческий фактор и достаточно просто забыть выполнить простую задачу или рутинный список из них. Для автоматизации такого рода вещей существует планировщик задач – CRON! Он позволяет выполнить по определенному графику или интервалу нужные команды.
Что такое Cron и как его найти?
Cron – это системная утилита автоматизации выполнения задач, скриптов, команд утилит, а так же сервисов с в заранее заданным расписанием точного времени или интервалов. Данное решение позволяет выполнять рутинные и постоянные задачи, без участия пользователя. Cron состоит из нескольких частей:
- crontab файлы конфигурации с командами на выполнение, когда и какую команду необходимо выполнить. Для каждого пользователя может быть создан отдельный файл, обычно хранятся в директории /etc/cron.d;
- crond служба, которая периодически проверяет файлы с заданиями для их выполнения.
Проверим установлена ли в вашей системе утилита и где ее найти, для RPM-подобных менеджеров пакетов используйте команду:
Если вы используете apt-менеджер, то для поиска используйте:
После чего отобразится список установленных утилит с упоминанием cron, от чего можно сделать вывод об установленном ПО!
Установка cron
Если вы обнаружили, что пакетов на устройстве нет, то необходимо установить их через команду для apt-подобных дистрибутивов. Таких как Debian, Ubuntu:
Для RPM-подобных систем, команда для установки пакета c его зависимостями может выглядеть следующим образом:
После того, как убедились, что все зависимости с пакетом установлены, через команду crontab, то можем перейти к ее синтаксису!
Синтаксис и принцип работы cron
Для создания задачи в cron используется несколько основных блоков:
Первый блок с временными значениями, который по порядку обозначает время, когда должна исполниться задача. Затем идет имя пользователя, от которого необходимо ее запустить, а так же полный путь к команде. Если имя не указывается, то задача ставится на пользователя, которым была создана.
К примеру, нам необходимо отобразить в ближайшее точное время текст и записать его в файл. Для этого пропишем команду:
В терминале откроется окно с пустыми полями, это наш файл задач, в который можем прописать одну из. Для этого перейдем в режим редактирования, через кнопку i и пропишем следующую строку:
Она обозначает, что каждый день в 7 часов и 27 минут будет исполняться команда записи в файл! После чего нажмем Esc для выхода из режима редактирования и введем :wq для сохранения и выхода из редактора.
Для этого пропишите следующую команду, если это не вызывает трудностей, то пропустите этот шаг:
EDITOR=nano
Вернемся к нашему менеджеру задач! После того, как задача будет добавлена cron выдаст об этом оповещение и для того, чтобы проверить список текущих необходимо прописать:
Отлично! Задача создана и теперь необходимо проверить ее работоспособность для этого можем дождаться времени, на которое стоит задача или принудительно запустить файл через команду:
После чего зафиксируем результат:
Cron отработал задачу и записал данные в файл, но что если задача не выполнена? Как узнать какие действия выполнил cron?
Логирование cron
Для просмотра действий утилиты необходимо открыть текстовый файл с логами через следующую команду:
Или используйте иной путь:
Который откроет список действий за последнее время:
На последних строках видно, что служба CROND выполнила команду по времени и затем закончила работу. Если список задач на cron устарел, то удалить все задачи можно через команду:
Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Потребуется некоторое время для развертывания серверных мощностей. После чего вы можете подключиться любым из удобных способов. На основе предлагаемы VPS и VDS серверов, так же можно развернуть уже свою виртуальную инфраструктуру.
Пример использования cron
Если брать реальные задачи, то cron помогает во время выполнять ротацию временных файлов и логов, очистку временных директорий, создание бэкапов. Как для баз данных, так и для других систем. Для примера рассмотрим очистку директории, каждый день с интервалом в 2 часа и 0 минут с командой очистки по признаку хранения больше дня:
Проверим работоспособность с помощью утилит и способов, которые описали выше:
Проверив, что утилита выполнила соответствующую команду, можем объявить об успешном освоение CRON!