ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Crond: демон для выполнения запланированных команд

Crond: демон для выполнения запланированных команд

Управление сервером, безусловно, непростая работа, особенно для новичков. Если вы заняты решением различных технических вопросов вручную, то cron jobs – отличное решение. Задания Cron – это функция в ОС Linux, которая может помочь вам легко автоматизировать задачи на сервере. В этой статье мы приглашаем вас узнать, что такое crond или cron daemon, что такое cronjob, его основные команды и как использовать crontab.

 

Соглашения

# – данные команды должны выполняться с правами root либо непосредственно как пользователь root, либо с помощью команды sudo
$ – данные команды должны выполняться как обычный пользователь

Что такое Crond?

Crond – это демон или фоновый процесс, предназначенный для планирования широкого спектра задач. Он полезен для отправки электронных писем, касающихся статистики системы или программы, выполнения рутинного обслуживания системы, создания резервных копий или выполнения любой другой запланированной задачи. Если вы являетесь пользователем Windows, вы должны быть знакомы с планировщиком задач. Аналогичный демон также доступен в macOS, известный как Launchd.

Демон cron использует файлы crontab для описания задач и их планирования. Эти файлы в текстовом формате определяют команды, которые должны выполняться через определенные промежутки времени. У каждого пользователя может быть личный файл crontab, наряду с общесистемными файлами crontab, которые позволяют пользователям сотрудничать. Демон cron проверяет пользовательские файлы crontab, хранящиеся в var/spool/cron, и общесистемные файлы, расположенные в /etc/crontab и /etc/cron.d. Эта проверка выполняется поминутно.

Cron проверяет эти файлы и каталоги:

/etc/crontab

Системная crontab в настоящее время пуста по умолчанию. Исторически мы использовали файл /etc/crontab для выполнения ежедневных, еженедельных и ежемесячных задач. В настоящее время этими задачами управляет anacron, который ссылается на файл конфигурации, расположенный по адресу /etc/anacrontab.

/etc/cron.d/

Каталог, содержащий системные cronjobs, сохраненные для разных пользователей.

/var/spool/cron

Каталог, содержащий пользовательские crontables, созданные командой crontab.

 

Что такое Crontab?

Crontab – это команда, которую демон cron использует для управления таблицами. Файлы, используемые для загрузки демона cron, обозначаются как файлы crontab. Когда мы выполняем команду crontab –e, мы можем редактировать crontabs, найденные в /var/spool . Важно понимать, что файлы, расположенные в этом каталоге, имеют уникальный формат, и мы не должны редактировать их напрямую.

Например, чтобы составить список cronjobs, вы можете запустить эту команду:

# crontab -l

 

Или, чтобы просмотреть cronjobs пользователя, мы можем выполнить эту команду:

# crontab -u www-data -l

 

Если вы хотите отредактировать задание cron, вы можете вызвать эту команду ниже:

# crontab -e

 

Или, чтобы отредактировать задание cron в разделе user www-data, используйте эту команду:

# crontab -u www-data -e

 

При первом запуске команды crontab вы должны выбрать свой любимый редактор файлов. Команда вернет этот результат:

no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/mcedit
  4. /usr/bin/vim.tiny

Choose 1-4 [1]:

 

Вы можете ввести номер, затем нажать ENTER.

 

Что такое Cronjob?

Cron job – это инструмент командной строки для автоматического выполнения запланированных задач. Команда, более известная как cron, работает в операционных системах на базе UNIX, таких как Linux или Ubuntu. Мы используем cron для периодического выполнения нескольких задач, либо каждые несколько минут, часов, дней, либо по датам с фиксированными интервалами.

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

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

Каждый файл crontab состоит из двух компонентов, а именно времени и команды. В совокупности они называются заданиями cron. Формат времени содержит пять полей, которые необходимо заполнить:

Minute — поле минуты выполнения команды, записанное цифрами от 0 до 59.
Hour — поле "Час выполнения команды", записанное цифрами от 0 до 23.
Day — поле "Дата выполнения команды", записанное цифрами от 1 до 31.
Month — поле "Месяц выполнения команды", записанное цифрами от 1 до 12.
Weekday — поле "День выполнения команды". Дни начинаются с воскресенья, которое обозначается цифрой 0.

 

Например, если вы хотите запланировать выполнение заданий cron /opt/backup-mysql.sh каждый день в 02:00, тогда командный скрипт cron:

0 2 * * * /opt/backup.sh

 

В дополнение к цифрам, некоторые символы, используемые при использовании заданий cron, следующие:

Звездочка (*) — представляет все значения поля. Например, звездочка в поле минута означает, что команда на crontab выполняется каждую минуту.
Запятая (,) — используется для ввода двух или более значений в одно поле. Например, пользователь хочет запускать команду в 7 утра и ночью каждый день.
Дефис (-) — используется, если вы хотите указать временной диапазон в поле. Например, если пользователь хочет запускать команду с понедельника по среду каждую неделю.
Косая черта (/) — его функция аналогична запятой. Однако косая черта используется для указания более сложных настроек времени. Например, когда пользователь хочет автоматизировать выполнение команды каждые 10 минут с 11.20 до 11.50.
Last (L) — Последний (L) указывает определенный день последней недели месяца. Например, 5L означает последнюю пятницу.
Знак хэша или фунта (#) — этот знак используется, когда вы хотите указать неделю, в течение которой выполняется команда. При использовании за этим знаком следуют цифры от 1 до 5 в качестве индикатора недели. Например, 3#5 означает среду на пятой неделе.
День недели (W) – используйте этот знак для выполнения команд в ближайший рабочий день. Например, 1 января выпадает на воскресенье, тогда задание cron будет запущено в понедельник, 2 января.
Знак вопроса (?) – этот оператор используется, если в полях День месяца и День недели нет определенного значения.

 

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

Чтобы использовать его, введите @, за которым следует строковый параметр, подобный приведенному ниже примеру задания cron:

@hourly – задания Cron выполняются каждый час.
@daily или @midnight – задания Cron выполняются каждый день в 12 часов ночи.
@weekly – команда для планирования задания cron раз в неделю, в полночь воскресенья.
@monthly – задания Cron будут выполняться раз в месяц 1–го числа.
@yearly - Специальная строка для запуска команды cron job раз в год 1 января в полночь.
@reboot – запускает команду cron при каждом перезапуске сервера VPS-хостинга.

 

Вот и все! Вы узнали все, что вам нужно о Crond: Демон для выполнения запланированных команд и понимаете, как добавить cronjob.

Если вам понравился этот пост о Crond: Демон для выполнения запланированных команд, пожалуйста, поделитесь им с друзьями или оставьте комментарий ниже. Спасибо.

Exit mobile version