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 символа оператора, которые позволяют вам указывать несколько значений в поле:
- Звездочка
(*)
: указывает на все возможные значения для поля - Запятая
(,)
: указывает на список значений - Тире
(-)
: указывает на диапазон значений - Разделитель
(/)
: указывает на шаговое значение
Теперь, когда вы знаете синтаксис и операторы 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 есть определенные строки, которые можно использовать для создания команд быстрее:
@hourly
: Запускать раз в час, т.е. “0 * * * *“@midnight
: Запускать раз в день, т.е. “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. Теперь вы можете начать настраивать и поддерживать несколько сред с помощью запланированных команд.
Насколько вы опытный пользователь Cron? И есть ли какие-либо детали, которые вы можете внести в статью? Окно обсуждения находится ниже.
Когда вы достаточно разберетесь в работе Crontab, вы сможете использовать эти удобные утилиты генерации Crontab для бесплатной генерации строк crontab.
Также вы можете прочитать статью Ubuntu о том, как использовать Cron здесь. В ней содержатся ресурсы, которые могут вам пригодиться.
Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/