Cron является одним из самых полезных инструментов Linux и любимым разработчиками, поскольку он позволяет вам запускать автоматизированные команды в определенные периоды, даты и интервалы, используя как скрипты общего назначения, так и для конкретных задач.
Учитывая это описание, вы можете представить, как его используют системные администраторы для автоматизации задач резервного копирования, очистки каталогов, уведомлений и т. д.
Задания Cron выполняются в фоновом режиме и постоянно проверяют файл /etc/crontab и каталоги /etc/cron.*/ и /var/spool/cron/.
Файлы cron не должны редактироваться напрямую, и у каждого пользователя есть уникальный crontab.
Как тогда вы должны создавать и редактировать задания cron?
С помощью команд crontab.
Crontab – это метод, который вы используете для создания, редактирования, установки, удаления и перечисления заданий cron.
Команда для создания и редактирования заданий cron такая же и простая.
И что еще круче, вам не нужно перезагружать cron после создания новых файлов или редактирования существующих.
$ crontab -e
Cron Синтаксис
Как и с любым языком, работать с cron намного проще, когда вы понимаете его синтаксис и существует 2 формата, которые вы должны знать:
A B C D E USERNAME /path/to/command arg1 arg2 или A B C D E USERNAME /root/backup.sh
Объяснение приведенного выше синтаксиса cron:
- A: Минутный диапазон: 0 – 59
- B: Диапазон часов: 0 – 23
- C: диапазон дней: 0 – 31
- D: диапазон месяцев: 0 – 12
- E: Дни недели: 0 – 7. Начиная с понедельника, 0 или 7 обозначает воскресенье
- USERNAME: замените это на ваше имя пользователя
- /path/to/command – имя скрипта или команды, которую вы хотите запланировать
Это не все. Cron использует 3 символа оператора, которые позволяют вам указать несколько значений в поле:
- Звездочка (*): указывает все возможные значения для поля
- Запятая (,): указывает список значений
- Тире (-): указывает диапазон значений
- Разделитель (/): задает значения шага значения в поле:
Теперь, когда вы знаете синтаксис и операторы Cron, давайте рассмотрим некоторые примеры!
Примеры Cron
Первым шагом к запуску команд cron является установка вашего crontab с помощью команды:
# crontab -e
Запускать /root/backup.sh в 3 часа ночи каждый день:
0 3 * * * /root/backup.sh
Запуск script.sh в 16:30 второго числа каждого месяца:
30 16 2 * * /path/to/script.sh
Запускать /scripts/phpscript.php в 22:00 в течение недели:
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 или # crontab -u username -l
Удалить все задания crontab.
# crontab -r
Удалить задание Cron для конкретного пользователя.
# crontab -r -u username
Строки в Crontab
Строки являются одним из любимых вещей разработчика, потому что они помогают сэкономить время, устраняя повторяющиеся записи.
В Cron есть определенные строки, которые вы можете использовать для более быстрого создания команд:
- @hourly: запускаться один раз в час, т.е. «0 * * * *»
- @idnight: запускать раз в день, то есть «0 0 * * *»
- @daily: так же, как полночь
- @weekly: запускаться раз в неделю, то есть «0 0 * * 0»
- @monthly: запускаться раз в месяц, т. е. «0 0 1 * *»
- @annually: запускается один раз в год, то есть «0 0 1 1 *«
- @yearly так же, как @annually
- @reboot: запускать один раз при каждом запуске
Например, вот как делать резервную копию вашей системы каждый день:
@daily /path/to/backup/script.sh
На данный момент у вас есть все, что вам нужно для создания и управления системными задачами с помощью Cron.
Теперь вы можете начать настраивать и поддерживать несколько сред, используя запланированные команды.