Руководство для начинающих по Cron Jobs
Планируйте задачи с помощью заданий Cron в Linux и Unix-подобных операционных системах.
Cron — одна из самых полезных утилит, которые можно найти в любой Linux и Unix-подобной операционной системе. Cron используется для планирования команд на определенное время. Эти запланированные команды или задачи известны как "Задания Cron". Cron обычно используется для запуска запланированного резервного копирования, мониторинга дискового пространства, периодического удаления файлов (например, файлов журналов), которые больше не нужны, выполнения задач по обслуживанию системы и многого другого. В этом руководстве по заданиям Cron мы рассмотрим базовое использование заданий Cron в Linux с примерами.
1. Руководство для начинающих по Cron Jobs
Типичный формат задания cron:
Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute
Просто запомните формат задания cron или распечатайте следующую иллюстрацию и держите ее на своем столе.
Формат задания Cron
На изображении выше звездочки обозначают определенные блоки времени.
Чтобы отобразить содержимое файла crontab текущего пользователя, вошедшего в систему:
crontab -l
Чтобы отредактировать задания cron текущего пользователя, выполните:
crontab -e
Если это первый раз, вам будет предложено выбрать редактор для редактирования заданий cron.
no crontab for sk - 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/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
Выбирайте любой, который вам подходит. Вот как выглядит пример файла crontab.
файл кронтаба
В этот файл вам нужно добавить задания cron одно за другим.
По умолчанию задания cron выполняются под учетной записью пользователя, который их создал. Однако вы можете указать другого пользователя, отредактировав crontab для этого пользователя. Чтобы отредактировать crontab другого пользователя, например ostechnix
, выполните:
sudo crontab -u ostechnix -e
1.1. Учебное пособие по Cron-заданиям
Вот список наиболее часто используемых команд заданий cron с примерами. Я также включил подробное объяснение каждого выражения задания cron.
1. Чтобы задание cron запускалось каждую минуту, формат должен быть таким, как показано ниже.
* * * * * <command-to-execute>
Это задание cron должно запускаться каждую минуту, каждый час, каждый день, каждый месяц и каждый день недели. Например, если сейчас 10:00, следующее задание будет запущено в 10:01, 10:02, 10:03 и так далее.
Объяснение:
Вот разбивка приведенного выше выражения cron.
Звездочки (*) в каждом поле представляют собой подстановочный знак, означающий «любое значение». Итак, в этом случае:
- Первая звездочка (*) обозначает любую минуту (0–59).
- Вторая звездочка (*) представляет любой час (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться каждую минуту.
Обратите внимание, что запуск команды каждую минуту может иметь последствия для ресурсов, и его следует использовать с осторожностью. Важно убедиться, что указанная вами команда подходит для частого выполнения и не перегружает вашу систему.
2. Чтобы запускать задание cron каждые 5 минут, добавьте следующее в свой файл crontab.
*/5 * * * * <command-to-execute>
Это задание cron запланировано запускаться каждые 5 минут. Например, если время 10:00, следующее задание будет запущено в 10:05, 10:10, 10:15 и так далее.
Объяснение:
Вот как интерпретировать выражение cron:
*/5
в первом поле представляет значение шага, указывающее, что задание cron будет запускаться каждые 5 минут. Он соответствует всем значениям, которые делятся без остатка на 5 (например, 0, 5, 10, 15, 20 и т. д.).- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться каждые 5 минут.
Таким образом, это задание cron будет запускать указанный
каждые 5 минут непрерывно в течение дня и месяца, независимо от конкретной даты и времени.
Имейте в виду, что запуск команды с такими частыми интервалами может привести к большому количеству выполнений. Убедитесь, что команда подходит для такого частого выполнения и что она не перегружает вашу систему и не вызывает непредвиденных побочных эффектов.
3. Чтобы запускать задание cron каждые четверть часа (т. е. каждые 15 минут), добавьте следующее:
*/15 * * * * <command-to-execute>
Например, если время 10:00, следующее задание будет запущено в 10:15, 10:30, 10:45 и так далее.
Объяснение:
Задание cron */15 * * * *
запланировано запускаться каждые 15 минут.
Давайте разберем выражение cron:
*/15
в первом поле представляет собой значение шага, указывающее, что задание cron будет запускаться каждые 15 минут. Он соответствует всем значениям, которые делятся без остатка на 15 (например, 0, 15, 30, 45 и т. д.).- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться каждые 15 минут.
Таким образом, это задание cron будет запускать указанную команду каждые 15 минут в течение дня и месяца, независимо от конкретной даты и времени.
4. Чтобы запускать задание cron каждый час на 30-й минуте:
30 * * * * <command-to-execute>
Например, если время 10:00, следующее задание будет запущено в 10:30, 11:30, 12:30 и так далее.
Объяснение:
Задание cron 30 * * * *
запланировано на 30 минут каждого часа.
Давайте разберем выражение cron:
30
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 30, поэтому задание cron будет выполняться в 30 минут каждого часа.- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться каждые 30 минут каждого часа.
Таким образом, это задание cron будет запускать указанную команду один раз в час, а именно через 30 минут. Он будет выполняться каждые 30 минут каждого часа в течение дня и месяца, независимо от конкретной даты или дня недели.
Обратите внимание, что задание cron не будет выполняться непрерывно каждую минуту. Вместо этого он будет запускаться один раз в час, всегда в 30 минут каждого часа.
5. Вы также можете указать несколько интервалов времени, разделенных запятыми. Например, следующее задание cron будет запускаться три раза в час, на 0, 5 и 10 минуте:
0,5,10 * * * * <command-to-execute>
Объяснение:
Задание cron 0,5,10 * * * *
запланировано на 0-ю, 5-ю и 10-ю минуту каждого часа.
Давайте разберем выражение cron:
0,5,10
в первом поле представляет собой конкретные минуты, в течение которых будет выполняться задание cron. В данном случае ему присвоены значения 0, 5 и 10. Задание cron будет выполняться на 0, 5 и 10 минуте каждого часа.- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполнена в указанные минуты.
Таким образом, это задание cron будет запускать указанную команду несколько раз в течение каждого часа. Он будет выполняться на 0-й, 5-й и 10-й минуте каждого часа в течение дня и месяца, независимо от конкретной даты или дня недели.
Обратите внимание, что задание cron будет выполняться только в указанные минуты, а не непрерывно в течение часа.
6. Запускайте задание cron каждые полчаса, то есть каждые 30 минут:
*/30 * * * * <command-to-execute>
Например, если сейчас 10:00, следующее задание будет запущено в 10:30, 11:00, 11:30 и так далее.
Объяснение:
Задание cron */30 * * * *
запланировано запускаться каждые 30 минут.
Вот как интерпретировать выражение cron:
*/30
в первом поле представляет собой значение шага, указывающее, что задание cron будет запускаться каждые 30 минут. Он соответствует всем значениям, которые делятся без остатка на 30 (например, 0, 30).- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться каждые 30 минут.
Таким образом, это задание cron будет запускать указанную команду каждые 30 минут в течение дня и месяца, независимо от конкретной даты и времени.
7. Запускать задание каждый час (на 0-й минуте):
0 * * * * <command-to-execute>
Например, если сейчас 10:00, следующее задание будет запущено в 11:00, 12:00, 13:00 и так далее.
Объяснение:
Задание cron 0 * * * *
запланировано на 0-ю минуту каждого часа.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале каждого часа.- Вторая звездочка (*) представляет любой час дня (0–23).
- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в 0-ю минуту каждого часа.
Таким образом, это задание cron будет запускать указанную команду один раз в час, а именно в начале каждого часа. Он будет выполняться в 0-ю минуту каждого часа в течение дня и месяца, независимо от конкретной даты или дня недели.
Обратите внимание, что задание cron не будет выполняться непрерывно каждую минуту. Вместо этого он будет запускаться один раз в час, ровно на 0-й минуте.
8. Запускайте задание каждые 2 часа:
0 */2 * * * <command-to-execute>
Например, если сейчас 10:00, следующее задание будет запущено в 12:00.
Объяснение:
Задание cron 0 */2 * * *
запланировано на 0-ю минуту каждого второго часа.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале каждого часа.*/2
во втором поле представляет значение шага, указывающее, что задание cron будет запускаться каждые 2 часа. Он соответствует всем значениям, которые делятся без остатка на 2 (например, 0, 2, 4, 6 и т. д.).- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в 0-ю минуту каждого второго часа.
Таким образом, это задание cron будет запускать указанную команду каждые 2 часа. Он будет выполняться в 0-ю минуту каждого второго часа в течение дня и месяца, независимо от конкретной даты или дня недели.
Обратите внимание, что задание cron не будет выполняться непрерывно каждую минуту или каждый час. Вместо этого он будет запускаться каждые 2 часа, ровно на 0-й минуте этих часов.
9. Запускать задание каждый день (оно будет выполняться в 00:00):
0 0 * * * <command-to-execute>
Объяснение:
Задание cron 0 0 * * *
запланировано на полночь (00:00) каждый день.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет собой конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в полночь (00:00) каждый день.
Таким образом, это задание cron будет запускать указанную команду один раз в день, ровно в полночь. Он будет выполняться в 00:00 каждый день, независимо от конкретной даты или дня недели.
Обратите внимание, что задание cron запускается один раз в день, а именно в полночь, для выполнения задачи, определенной командой.
10. Запускайте задание каждый день в 3 часа ночи:
0 3 * * * <command-to-execute>
Объяснение:
Задание cron 0 3 * * *
запланировано на запуск в 3:00 утра каждый день.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).3
во втором поле представляет конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 3, что соответствует 3:00 утра.- Третья звездочка (*) представляет любой день месяца (1–31).
- Четвертая звездочка (*) представляет любой месяц (1–12).
- Пятая звездочка (*) представляет любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в 3:00 утра каждый день.
Таким образом, это задание cron будет запускать указанную команду один раз в день, а именно в 3:00 ночи. Он будет выполняться в 3:00 утра каждый день, независимо от конкретной даты или дня недели.
11. Запускайте задание каждое воскресенье:
0 0 * * SUN <command-to-execute>
Или,
0 0 * * 0 <command-to-execute>
Он начнется ровно в 00:00 в воскресенье.
Задание cron запускается один раз в неделю, а именно в полночь по воскресеньям, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 * * SUN
запланировано на полночь (00:00) по воскресеньям.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет конкретный час, в который будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.- Звездочки (*) в третьем и четвертом полях обозначают любой день месяца (1–31) и любого месяца (1–12) соответственно.
SUN
в пятом поле представляет конкретный день недели, когда будет выполняться задание cron. В данном случае установлено значение SUN, что означает воскресенье.
представляет фактическую команду, которая будет выполняться в полночь по воскресеньям.
Таким образом, это задание cron будет запускать указанную команду один раз в неделю, а именно в полночь по воскресеньям. Он будет выполняться в 00:00 каждое воскресенье, независимо от конкретной даты или месяца.
12. Запускайте задание каждый день недели с понедельника по пятницу, т. е. каждый будний день:
0 0 * * 1-5 <command-to-execute>
Работа начнется в 00:00.
Задание cron запускается один раз в день, а именно в полночь, с понедельника по пятницу, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 * * 1-5
запланировано на полночь (00:00) с понедельника по пятницу.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет конкретный час, в который будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.- Звездочки (*) в третьем и четвертом полях обозначают любой день месяца (1–31) и любого месяца (1–12) соответственно.
1-5
в пятом поле представляет диапазон дней недели, в которые будет выполняться задание cron. В данном случае установлено значение от 1 до 5, что означает понедельник-пятница.
представляет фактическую команду, которая будет выполнена в полночь с понедельника по пятницу.
Таким образом, это задание cron будет запускать указанную команду один раз в день, а именно в полночь, с понедельника по пятницу. Он будет выполняться в 00:00 в будние дни, независимо от конкретной даты или месяца.
13. Запускайте задание каждый месяц (т. е. в 00:00 первого дня месяца):
0 0 1 * * <command-to-execute>
Задание cron запускается один раз в месяц, а именно в полночь 1-го числа месяца, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 1 * *
запланировано на полночь (00:00) 1-го числа каждого месяца.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет конкретный час, в который будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.1
в третьем поле представляет конкретный день месяца, когда будет выполняться задание cron. В данном случае ему присвоено значение 1, что указывает на 1-й день месяца.- Звездочки (*) в четвертом и пятом полях обозначают любой месяц (1–12) и любой день недели (0–7) соответственно.
представляет фактическую команду, которая будет выполняться в полночь 1-го числа каждого месяца.
Таким образом, это задание cron будет запускать указанную команду один раз в месяц, а именно в полночь 1-го числа каждого месяца. Он будет выполнен в 00:00 1-го числа месяца, независимо от конкретного месяца или дня недели.
14. Запустите задание в 16:15 первого дня месяца:
15 16 1 * * <command-to-execute>
Задание cron запускается один раз в месяц, а именно в 16:15 (16:15) 1-го числа месяца, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 15 16 1 * *
запланировано на 16:15 (16:15) 1-го числа каждого месяца.
Вот как интерпретировать выражение cron:
15
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае установлено значение 15, поэтому задание cron будет выполняться в 15 минут каждого часа.16
во втором поле представляет собой конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 16, что соответствует 16:00.1
в третьем поле представляет конкретный день месяца, когда будет выполняться задание cron. В данном случае ему присвоено значение 1, что указывает на 1-й день месяца.- Звездочки (*) в четвертом и пятом полях обозначают любой месяц (1–12) и любой день недели (0–7) соответственно.
представляет фактическую команду, которая будет выполняться в 16:15 1-го числа каждого месяца.
Таким образом, это задание cron будет запускать указанную команду один раз в месяц, а именно в 16:15 первого числа каждого месяца. Он будет выполнен в 16:15 1-го числа месяца, независимо от конкретного месяца или дня недели.
15. Запускайте задание каждый квартал, т. е. в первый день каждого третьего месяца:
0 0 1 */3 * <command-to-execute>
Задание cron будет запускаться раз в три месяца, а именно в полночь 1-го числа соответствующего месяца, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 1 */3 *
запланировано на полночь (00:00) первого числа каждого третьего месяца.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет собой конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.1
в третьем поле представляет конкретный день месяца, когда будет выполняться задание cron. В данном случае ему присвоено значение 1, что указывает на 1-й день месяца.*/3
в четвертом поле представляет собой значение шага, указывающее, что задание cron будет запускаться каждые 3 месяца. Он соответствует всем значениям, которые делятся без остатка на 3 (например, 1, 4, 7, 10).- Звездочки (*) в пятом поле обозначают любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в полночь 1-го числа каждого третьего месяца.
Таким образом, это задание cron будет запускать указанную команду один раз в три месяца, а именно в полночь 1-го числа каждого соответствующего месяца. Он будет выполняться в 00:00 1-го числа каждого третьего месяца, независимо от конкретного дня недели.
16. Запуск задания в определенном месяце в определенное время:
5 0 * 4 * <command-to-execute>
Работа начнется в 00:05 в апреле. Задание cron будет запускаться один раз в день, а именно в 00:05 в апреле, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 5 0 * 4 *
запланировано на запуск в 00:05 (00:05) каждый день в течение апреля.
Вот как интерпретировать выражение cron:
5
в первом поле обозначает конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 5, поэтому задание cron будет выполняться через 5 минут каждого часа.0
во втором поле представляет конкретный час, в который будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.- Звездочка (*) в третьем поле обозначает любой день месяца (1–31).
4
в четвертом поле представляет конкретный месяц, в котором будет выполняться задание cron. В данном случае установлено значение 4, что указывает на апрель.- Звездочка (*) в пятом поле обозначает любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в 00:05 каждый день в апреле.
Таким образом, это задание cron будет запускать указанную команду один раз в день, а именно в 00:05 в апреле. Он будет выполняться в 00:05 каждого дня апреля, независимо от конкретного дня недели.
17. Выполняйте задание каждые 6 месяцев:
0 0 1 */6 * <command-to-execute>
Это задание cron начнется в 00:00 первого дня каждого шестого месяца. Задание cron будет запускаться раз в шесть месяцев, а именно в полночь первого дня соответствующего месяца, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 1 */6 *
запланировано на полночь (00:00) 1-го числа каждого 6-го месяца.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет собой конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.1
в третьем поле представляет конкретный день месяца, когда будет выполняться задание cron. В данном случае ему присвоено значение 1, что указывает на 1-й день месяца.*/6
в четвертом поле представляет собой значение шага, указывающее, что задание cron будет запускаться каждые 6 месяцев. Он соответствует всем значениям, которые делятся без остатка на 6 (например, 1, 7, 13).- Звездочки (*) в пятом поле обозначают любой день недели (0–7).
представляет фактическую команду, которая будет выполняться в полночь 1-го числа каждого 6-го месяца.
Таким образом, это задание cron будет запускать указанную команду один раз в шесть месяцев, а именно в полночь 1-го числа каждого соответствующего месяца. Он будет выполняться в 00:00 1-го числа каждого 6-го месяца, независимо от конкретного дня недели.
18. Запускайте задание 1 и 15 числа каждого месяца:
0 0 1,15 * * <command-to-execute>
Это задание cron планируется запускать 1 и 15 числа каждого месяца в полночь (00:00). Задание cron будет запускаться два раза в месяц, а именно в полночь 1-го и 15-го дней, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 1,15 * *
запланировано на полночь (00:00) 1-го и 15-го числа каждого месяца.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет конкретный час, в который будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.1,15
в третьем поле представляет конкретные дни месяца, когда будет выполняться задание cron. В данном случае ему присвоены значения 1 и 15, что указывает на 1-й и 15-й день месяца.- Звездочки (*) в четвертом и пятом полях обозначают любой месяц (1–12) и любой день недели (0–7) соответственно.
представляет фактическую команду, которая будет выполняться в полночь 1-го и 15-го числа каждого месяца.
Таким образом, это задание cron будет запускать указанную команду дважды в месяц, а именно в полночь 1-го и 15-го числа каждого месяца. Он будет выполнен в 00:00 1-го и 15-го числа, независимо от конкретного месяца или дня недели.
19. Выполняйте работу каждый год:
0 0 1 1 * <command-to-execute>
Это задание cron начнется в 00:00 первого дня месяца января. Задание cron запускается один раз в год, а именно в полночь 1 января, для выполнения задачи, определенной командой.
Объяснение:
Задание cron 0 0 1 1 *
запланировано на полночь (00:00) 1 января.
Вот как интерпретировать выражение cron:
0
в первом поле представляет конкретную минуту, когда будет запущено задание cron. В данном случае для него установлено значение 0, поэтому задание cron будет выполняться в начале часа (00 минут).0
во втором поле представляет собой конкретный час, когда будет выполняться задание cron. В данном случае установлено значение 0, что соответствует полуночи.1
в третьем поле представляет конкретный день месяца, когда будет выполняться задание cron. В данном случае ему присвоено значение 1, что указывает на 1-й день месяца.1
в четвертом поле представляет конкретный месяц, в котором будет выполняться задание cron. В данном случае установлено значение 1, что указывает на январь.- Звездочка (*) в пятом поле обозначает любой день недели (0–7).
представляет фактическую команду, которая будет выполнена в полночь 1 января.
Таким образом, это задание cron будет запускать указанную команду один раз в год, а именно в полночь 1 января. Он будет выполнен в 00:00 1 января, независимо от конкретного дня недели.
Использование строк задания Cron:
Мы также можем использовать следующие строки для определения задания cron.
- Cron job strings
Действие
- @reboot
Запустить один раз, при запуске.
- @yearly
Бегайте раз в год.
- @annually
(то же самое, что @yearly).
- @monthly
Запускайте раз в месяц.
- @weekly
Бегайте раз в неделю.
- @daily
Бегайте один раз в день.
- @midnight
(то же самое, что @daily).
- @hourly
Бегайте раз в час.
Поддерживаемые строки Cron
20. Чтобы запускать задание каждый раз при перезагрузке сервера, добавьте эту строку в свой файл crontab.
@reboot <command-to-execute>
Объяснение:
Код @reboot
не является синтаксисом задания cron. Вместо этого это специальная директива, которую можно использовать в файле конфигурации cron.
Когда директива @reboot
используется в файле конфигурации cron, она указывает, что указанная
должна быть запущена один раз при перезагрузке или запуске системы. .
Вот как это работает:
- Когда система загружается или перезагружается, демон cron считывает файл конфигурации cron.
- Если задание cron содержит директиву
@reboot
, за которой следует
, указанная команда выполняется в этот момент. - Команда может быть любой допустимой командой или сценарием, который вы хотите запускать при запуске системы.
Таким образом, использование @reboot
в файле конфигурации cron позволяет запланировать автоматический запуск команды или сценария один раз при загрузке системы.
Обратите внимание, что доступность и использование директивы @reboot
может различаться в зависимости от конкретной реализации cron и конфигурации системы.
21. Чтобы удалить все задания cron для текущего пользователя:
crontab -r
Команда crontab -r
используется для удаления записей crontab (таблицы cron) текущего пользователя.
Когда вы выполняете crontab -r
, он удаляет все запланированные задания cron, связанные с вашей учетной записью пользователя. Это действие является необратимым, и задания cron больше не будут выполняться в запланированное ранее время.
Важно проявлять осторожность при использовании этой команды, поскольку она безвозвратно удаляет все задания cron для вашей учетной записи пользователя, включая любые повторяющиеся задачи или запланированные команды.
Прежде чем запускать crontab -r
, убедитесь, что у вас есть резервная копия или существующие задания cron вам больше не нужны. Если вы случайно удалите свой crontab, его невозможно будет восстановить, если у вас нет резервной копии.
Чтобы подтвердить удаление вашего crontab, команда обычно отображает такое сообщение, как «crontab: no crontab for», указывающее, что таблица cron успешно удалена.
Если вы захотите отредактировать свой crontab в будущем, вам нужно будет создать новые записи cron с помощью crontab -e
или восстановить его из резервной копии, если она доступна.
22. Подробное описание использования задания cron можно найти на страницах руководства.
man crontab
На этом этапе у вас может быть базовое представление о том, что такое Crontab и как создавать, запускать и управлять заданиями cron в Linux и Unix-подобных системах.
Теперь мы познакомимся с некоторыми графическими инструментами, которые помогут нам значительно упростить управление заданиями cron.
2. Генераторы синтаксиса Crontab
Как видите, планировать задания cron намного проще. Также есть несколько веб-генераторов синтаксиса crontab, которые еще больше упрощают эту работу. Вам не нужно запоминать и/или изучать синтаксис crontab.
Следующие два веб-сайта помогут вам легко создать выражение crontab на основе введенных вами данных. После того, как вы сгенерировали строку в соответствии с вашими требованиями, просто скопируйте и вставьте ее в свой файл crontab.
2.1. Crontab.гуру
Crontab.guru — это специальный веб-сайт, на котором можно изучить примеры заданий cron. Просто введите свои данные на сайт, и он мгновенно создаст синтаксис crontab за считанные минуты.
Crontab Guru — быстрый и простой редактор выражений расписания cron.
На этом сайте также представлено множество примеров заданий cron и советов. Проверьте их и узнайте, как запланировать выполнение cronjob.
2.2. Генератор Кронтаба
На это указал один из наших читателей Мистер Хортон в разделе комментариев ниже.
Генератор Crontab — это еще один веб-сайт, который помогает нам быстро и легко создавать выражения crontab. На этом сайте представлена форма с несколькими записями. Пользователь должен выбрать все обязательные поля в форме.
Наконец, нажмите кнопку Создать строку Crontab внизу.
Генератор Crontab — легко создавайте выражения crontab.
На следующем экране пользователь увидит свое выражение в crontab. Просто скопируйте/вставьте его в файл crontab. Это так просто.
Создание записей crontab с помощью Crontab Generator
Легко, не так ли? Оба этих веб-сайта определенно помогут новичкам, у которых нет большого опыта в создании заданий cron.
Не забудьте просмотреть и проверить сгенерированный синтаксис cron с помощью этих инструментов, прежде чем использовать его в конфигурации cron, чтобы убедиться, что он соответствует вашим требованиям и среде.
3. Графический интерфейс Crontab
Существует несколько внешних инструментов Crontab, позволяющих легко создавать задания cron через графический интерфейс. Нет необходимости редактировать файл Crontab из командной строки, чтобы добавлять задания cron или управлять ими! Эти инструменты значительно упростят управление заданиями cron!
3.1. Пользовательский интерфейс Кронтаба
Пользовательский интерфейс Crontab – это веб-инструмент для простого и безопасного управления заданиями cron в Linux. Вам не нужно вручную редактировать файл crontab для создания, удаления и управления заданиями cron. Все можно сделать через веб-браузер парой щелчков мыши.
Пользовательский интерфейс Crontab позволяет легко создавать, редактировать, приостанавливать, удалять, создавать резервные копии заданий cron, а также без особых хлопот импортировать, экспортировать и развертывать задания на других машинах.
Если вам интересно узнать об этом больше, перейдите по следующей ссылке.
- Как легко и безопасно управлять заданиями Cron с помощью пользовательского интерфейса Crontab в Linux
3.2. Зейт
Zeit — это интерфейс Qt для команд crontab
и at
. Используя Zeit, мы можем добавлять, редактировать и удалять задания cron через простой графический интерфейс. Для получения более подробной информации перейдите по следующей ссылке:
- Zeit — графический интерфейс Crontab для планирования заданий в Linux
4. Часто задаваемые вопросы
Вот FAQ (часто задаваемые вопросы) по заданиям Cron.
Вопрос: Что такое задание Cron?
О: Задание Cron — это планировщик задач на основе времени в Linux и Unix-подобных операционных системах. Он позволяет планировать и автоматизировать выполнение команд или сценариев через определенные промежутки времени, например минуты, часы, дни или месяцы.
Вопрос: Как создать задание Cron?
О: Чтобы создать задание Cron, вы можете использовать команду crontab
для редактирования пользовательской таблицы cron. Запустите crontab -e
, чтобы открыть таблицу в текстовом редакторе и добавить нужную запись задания cron, используя указанный синтаксис cron.
Вопрос: Каков синтаксис cron?
О: Синтаксис cron состоит из пяти полей: минута, час, день месяца, месяц и день недели. В каждом поле можно указать желаемое время или условия выполнения задания. Например, 0 12 * * *
представляет задание cron, запуск которого запланирован на 12:00 каждый день.
Вопрос: Как указать несколько значений в поле?
О: Вы можете использовать запятые (,) для указания нескольких значений в поле. Например, 1,15 * * * *
означает, что задание будет выполняться на 1-й и 15-й минуте каждого часа.
Вопрос: Могу ли я использовать значения шагов в синтаксисе cron?
О: Да, вы можете использовать значения шага. Например, */15 * * * *
означает, что задание будет выполняться каждые 15 минут. Он соответствует всем значениям, делящимся без остатка на 15.
Вопрос: Как указать пользователя для задания cron?
О: По умолчанию задания cron выполняются под учетной записью пользователя, который их создал. Однако вы можете указать другого пользователя, используя sudo crontab -u username -e
для редактирования crontab для этого конкретного пользователя.
Вопрос: Как просмотреть существующие задания cron?
О: Чтобы просмотреть существующие задания cron для вашего пользователя, запустите crontab -l
. Эта команда выводит содержимое вашего текущего crontab.
Вопрос: Как удалить задание cron?
О: Чтобы удалить задание cron, запустите crontab -e
, чтобы отредактировать crontab и удалить соответствующую запись. Альтернативно вы можете использовать crontab -r
, чтобы удалить все задания cron для вашего пользователя.
Вопрос: Существуют ли какие-либо веб-инструменты, помогающие генерировать синтаксис заданий cron?
О: Да, существуют веб-генераторы синтаксиса crontab, которые могут помочь вам создавать расписания заданий cron без необходимости запоминать синтаксис. Некоторые известные примеры включают Crontab.guru и Crontab Generator. Эти инструменты позволяют вам в интерактивном режиме выбирать желаемое расписание с помощью удобных интерфейсов и генерировать для вас соответствующий синтаксис заданий cron.
Эти веб-инструменты могут быть полезны, особенно для тех, кто плохо знаком с заданиями cron или нужен быстрый способ создания сложных графиков. Тем не менее, по-прежнему важно понимать основы синтаксиса cron, чтобы эффективно использовать задания cron и устранять неполадки в различных средах.
Вопрос: Существуют ли какие-либо графические интерфейсы или внешние инструменты для управления заданиями cron?
О: Да, существуют интерфейсные инструменты Crontab, которые предоставляют графический интерфейс для легкого создания заданий cron и управления ими без необходимости редактировать файл Crontab вручную из командной строки.
Известные примеры таких инструментов включают Пользовательский интерфейс Crontab и Zeit. Эти инструменты обычно предлагают удобные интерфейсы, в которых вы можете определять расписания заданий cron, указывать команды или сценарии для запуска, устанавливать переменные среды и визуально управлять несколькими заданиями cron.
Связанное чтение:
- Как планировать задачи с помощью Linux at Command
5. Вывод
В этом руководстве по вкладке Cron мы обсудили, что такое задание cron, и основное использование заданий cron в Linux с примерами команд.
Мы также обсудили несколько веб-генераторов синтаксиса crontab и графических интерфейсов crontab, которые используются для легкого создания заданий cron и управления ими в Linux. Наконец, мы перечислили некоторые наиболее часто задаваемые вопросы и ответы (FAQ) по Cron Jobs.
Ресурсы:
- Планирование задач с помощью заданий Cron
- Полное руководство по Cron для начинающих, часть 1