Как создавать и управлять заданиями cron в Linux

CRON – это одна из самых полезных инструментов в Linux, и она является любимой утилитой разработчиков, позволяя запускать автоматические команды в определенные периоды, на определенные даты и интервалы, используя общеподходящие и специальные скрипты для задач. Согласно этой описации, вы можете представить, как системные администраторы используют ее для автоматизации задач резервного копирования, очистки каталогов, уведомлений и т.д.

Задачи CRON выполняются в фоновом режиме и постоянно проверяют файл /etc/crontab и каталоги /etc/cron.*/ и /var/spool/cron/. Файлы cron не должны редактироваться напрямую, и каждый пользователь имеет уникальную crontab.

Так что как можно создавать и редактировать задачи cron? С помощью команд crontab. crontab – это метод, который используется для создания, редактирования, установки, удаления и просмотра задач cron.

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

$ crontab -e

Синтаксис Cron

Как и в любом языке, работать с cron гораздо проще, когда вы понимаете его синтаксис. Есть два формата, которые вам следует знать:

A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

Объяснение указанного выше синтаксиса Cron:

  • A: Minutes range: 0 – 59
  • B: Hours range: 0 – 23
  • C: Days range: 0 – 31
  • D: Months range: 0 – 12
  • E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
  • ИМЯ_ПОЛЬЗОВАТЕЛЯ: замените на свое имя пользователя
  • /путь/к/команде – имя сценария или команды, которую вы хотите запланировать

Это еще не все. Cron использует 3 символа оператора, которые позволяют вам указывать несколько значений в поле:

  1. Звездочка (*): указывает на все возможные значения для поля
  2. Запятая (,): указывает на список значений
  3. Тире (-): указывает на диапазон значений
  4. Разделитель (/): указывает на шаговое значение

Теперь, когда вы знаете синтаксис и операторы Cron, давайте посмотрим на некоторые примеры Cron.

Примеры заданий Cron

Первый шаг к выполнению cron-команд – установить свой crontab с помощью команды:

# crontab -e

Запустить /root/backup.sh в 3 часа утра каждый день:

0 3 * * * /root/backup.sh

Запустить script.sh в 4:30 вечера во второй день каждого месяца:

30 16 2 * * /path/to/script.sh

Запустить /scripts/phpscript.php в 10 вечера в течение недели:

0 22 * * 1-5 /scripts/phpscript.php

Запустить perlscript.pl в 23 минуты после полуночи, в 2 часа ночи и в 4 часа утра, каждый день:

23 0-23/2 * * * /path/to/perlscript.pl

Запустить команду Linux в 04:05 каждое воскресенье:

5 4 * * sun /path/to/linuxcommand

Параметры Cron

Список заданий Cron.

# crontab -l
OR
# crontab -u username -l

Удалите все задания crontab.

# crontab -r

Удалите задание Cron для определенного пользователя.

# crontab -r -u username

Строки в Crontab

Строки – одна из любимых вещей разработчика, потому что они помогают экономить время, устраняя повторное писание. У Cron есть определенные строки, которые можно использовать для создания команд быстрее:

  1. @hourly: Запускать раз в час, т.е. “0 * * * *
  2. @midnight: Запускать раз в день, т.е. “0 0 * * *
  3. @daily: то же самое, что и полночь
  4. @weekly: Запускать раз в неделю, т.е. “0 0 * * 0
  5. @monthly: Запускать раз в месяц, т.е. “0 0 1 * *
  6. @annually: Запускать раз в год, т.е. “0 0 1 1 *
  7. @yearly: то же самое, что @annually
  8. @reboot: Запускать раз при каждом запуске

Например, вот как создать резервную копию вашей системы каждый день:

@daily /path/to/backup/script.sh

На этом этапе у вас есть все необходимое для создания и управления системными задачами с помощью Cron. Теперь вы можете начать настраивать и поддерживать несколько сред с помощью запланированных команд.

Насколько вы опытный пользователь Cron? И есть ли какие-либо детали, которые вы можете внести в статью? Окно обсуждения находится ниже.

Когда вы достаточно разберетесь в работе Crontab, вы сможете использовать эти удобные утилиты генерации Crontab для бесплатной генерации строк crontab.

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

Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/