VPS
23 июля, 2020
5мин. чтения
Содержание
VPS
23 июля, 2020
5мин. чтения
Чем бы вы не занимались, практически всегда есть возможность работать более эффективно. Так, например, занятые веб-специалисты нашли способ автоматизировать некоторые процессы, чтобы не тратить своё время на обработку повторяющихся задач. Одним из таких способов является cron job, или запланированные задания cron, доступные пользователям Unix-подобных операционных систем.
В этой статье мы расскажем об основах cron jobs, или как работают запланированные (отложенные) задачи.
Сэкономьте до 77%, ознакомьтесь с VPS-планами Hostinger!
Создавать и редактировать cron-задания можно разными способами. В этом руководстве мы покажем вам, как это делать с помощью командной строки Linux (терминала).
Если у вас есть свой VPS в Hostinger, ваши учётные данные для входа находятся во вкладке управления VPS. Подключитесь к вашему серверу по SSH. Если что-то не получается, ознакомьтесь с нашим руководством по PuTTY SSH.
Вот некоторые основные операции с cron:
Если вы хотите изменить crontab-файл (файл содержащий инструкции по выполнению запланированных заданий), то есть создать и настроить своё первое cron job, введите в терминале следующую команду:
crontab -e
Вот, как будет выглядеть результат.
Скорее всего вы попадёте в редактор vi. Так как этот редактор довольно часто используется при работе с cron, лучше ознакомится с основными командами vi. Так вы будете чувствовать себя более уверенно.
Если вы хотите изменить crontab-файл другого пользователя, используйте команду crontab -u username -e. Имейте в виду, что вы можете редактировать чужие файлы только как суперпользователь, то есть вам нужно ввести sudo su перед командой.
Если вы хотите удалить текущий файл crontab текущего пользователя, введите следующую команду:
crontab -r
Команда ниже делает то же самое, что и -r, однако она просит подтвердить действие, прежде чем удалить crontab:
crontab -i
Если вы хотите отобразить содержимое файла crontab, в который вы зашли, введите в терминале следующую команду:
crontab -l
Ещё одна операция этой команды позволяет посмотреть есть ли у вас crontab-файлы. Просто введите crontab -l. Если у вас нет созданных файлов, вывод покажет следующий результат:
Если вы хотите просмотреть списки crontab-файлов других пользователей, просто введите crontab -u username -l как суперпользователь.
Теперь, когда вы ознакомились с базовыми операциями, пора рассмотреть основной синтаксис cron.
По сути, crontab-файл состоит из двух частей: таймера расписания и команды. Вот как записывается команда:
* * * * * /bin/sh backup.sh
Давайте углубимся в некоторые детали.
Crontab-файл имеет пять полей. Каждое поле представлено звёздочкой и определяет дату и время задачи, которая должна выполняться повторно.
Кроме того, важно использовать правильные символы.
Теперь, когда вы ознакомились с синтаксисом cron, мы дадим больше примеров, которые помогут вам лучше понять изложенные выше правила.
Прежде чем двигаться дальше, обратите внимание, что вывод команды будет автоматически отправлен на вашу локальную электронную почту. Если вы не хотите получать эти письма, просто добавьте к синтаксису >/dev/null 2>&1, как показано в примере:
0 5 * * * /root/backup.sh >/dev/null 2>&1
Если вы хотите, чтобы вывод приходил на другую почту, вы можете добавить MAILTO, а затем адрес электронной почты. Например:
MAILTO="mojo_imia@hostinger.com" 0 3 * * * /root/backup.sh >/dev/null 2>&1
Больше примеров синтаксиса:
Выражение | Значение |
0 0 * * * /bin/sh backup.sh | Выполнять резервное копирование базы данных в полночь один раз в день. |
0 6,18 * * * /bin/sh backup.sh | Выполнять резервное копирование БД два раза в день в 6 утра и 6 вечера. |
0 */6 * * * /scripts/monitor.sh | Проводить мониторинг каждые шесть часов. |
*/10 * * * * /home/user/script.sh | Выполнять cron job для файла сценария, находящегося в домашнем каталоге, каждые 10 минут. |
0 * 20 7 * /bin/sh backup.sh | Запускать резервное копирование базы данных каждый час каждого 20 июля. |
0 0 * * 2 * /bin/sh | Запускать резервное копирование БД в полночь каждый вторник. |
* * * 1,2,5 * /script/script.sh | Выполнить команду в январе, феврале и мае. |
10-59/5 5 * * * /home/user/script.sh | Выполнять команду каждые 5 минут в 5 часов утра, начиная с 5:10 утра. |
0 8 1 */3 * /home/user/script.sh | Запускать команду ежеквартально в 1-й день в 8 утра. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh | Чтобы запланировать несколько заданий в одном cron job. |
@reboot /scripts/script.sh | Чтобы выполнять определённую задачу каждый раз при запуске системы. |
0 0 1 * * /home/user/script.sh | Выполнить команду в первый день каждого месяца. |
Для cron-заданий важны два файла.
Cron — это утилита для планирования повторяющихся заданий. Отложенное/запланированное задание — это и есть cron job.
Если вы просто хотите запланировать задачу, чтобы она выполнилась один раз, но позже, тогда вам нужно использовать другую команду. Если же речь идёт о повторяющихся задачах, то cron — необходимое вам решение.
Cron — демон, а это означает, что он работает в фоновом режиме для выполнения не интерактивных заданий. В Windows примером фоновых процессов являются Службы.
Демон всегда находится в состоянии бездействия и ожидает, когда команда попросит его выполнить определённую задачу — либо на текущем компьютере, либо на другой любой машине в сети.
Файл cron — это простой текстовый файл, который содержит команды для запуска в определённое время. Системный файл crontab по умолчанию — /etc/crontab, он находится в каталоге crontab /etc/cron.*/. Только системные администраторы могут редактировать системный crontab-файл.
Однако, поскольку Unix-подобные операционные системы поддерживают несколько пользователей, каждый из них может создать свой собственный crontab-файл и запускать команды в любое время. Демон cron проверяет файл и запускает команды в фоновом режиме.
С помощью cron-заданий вы можете автоматизировать обслуживание системы, мониторинг дискового пространства и выполнение резервного копирования. По своей природе cron-задачи отлично подходят для компьютера, который должен работать круглосуточно, то есть для сервера.
Обратите внимание, что хотя cron в основном используют системные администраторы, веб-разработчикам тоже может пригодиться этот замечательный инструмент. Например, cron можно использовать, чтобы деактивировать просроченные учётные записи, проверять неработающие ссылки или даже рассылать новостные письма целевой аудитории.
Автоматизация повторяющихся задач не только поможет вам работать более эффективно, но и вовремя выполнять все необходимые действия.
Cron job — отличный способ управления повседневными задачами, который подойдёт как системным администраторам, так и другим веб-специалистам, включая разработчиков. Всё, что вам нужно сделать, это использовать правильную команду и выбрать правильное время для её выполнения.
Вот некоторые из основных команд:
А теперь пришло время попрактиковаться и заставить cron работать на вас!