Crontab Cheat Sheet - Практический гайд с примерами
Введение
Crontab - это мощная утилита для Unix-подобных операционных систем, которая позволяет планировать и автоматизировать задачи с заранее определенными интервалами. Она использует демон cron для выполнения команд или сценариев в соответствии с заданным расписанием. Эта шпаргалка содержит обзор синтаксиса crontab и демонстрирует практические примеры, которые помогут вам эффективно планировать повторяющиеся задачи.
Введение
- Введение
- Разница между Cron, Crontab и Cron Job
- Crontab: Синтаксис
- Практические примеры
- Вывод
- Ссылки на источники
Разница между Cron, Crontab и Cron Job
Приведенная таблица иллюстрирует ключевые элементы, связанные с планированием задач с использованием cron в системах Linux.
Element | Linux Name | Meaning |
---|---|---|
Daemon | crond | Pronounced “demon” or “day-mon”. These are Linux background system processes. |
Table | crontab | You write rows to this table when entering a crontab command. Each * asterisk represents a segment of time and a corresponding column in each row. |
Job | Cron Job | The specific task to be performed described in a row, paired with its designated time id. |
Cron
Cron - это название системного демона, ответственного за выполнение запланированных задач в Unix-подобных операционных системах. Он работает в фоновом режиме и периодически проверяет системные файлы crontab, чтобы определить, какие задачи необходимо выполнить.
Crontab
Crontab, сокращение от “cron-таблицы”, относится к файлу или файлам, содержащим определения запланированных задач для отдельных пользователей. У каждого пользователя есть свой собственный файл crontab, в котором он может определить время и команды или сценарии, которые должны выполняться через определенные промежутки времени. Файлы Crontab используются для настройки запланированных задач и управления ими для каждого пользователя.
Cron Job
Задание cron относится к конкретной задаче или команде, выполнение которой запланировано в определенное время или с определенным интервалом с помощью файла crontab. Пользователи определяют свои задания cron в своих файлах crontab, указывая время и команду или сценарий, которые должны выполняться. Каждое задание cron представляет собой отдельную запись в файле crontab, позволяющую пользователям планировать несколько задач в соответствии с их конкретными требованиями.
Таким образом, Cron - это системный демон, ответственный за выполнение запланированных задач, Crontab - это файл, используемый для определения запланированных задач для отдельных пользователей, а Cron Job относится к конкретной задаче, запланированной с использованием файла crontab.
Crontab: Синтаксис
Чтобы создавать задания cron и управлять ими с помощью crontab, вам необходимо понимать синтаксис. Каждая строка в файле crontab представляет задание cron и состоит из шести полей, разделенных пробелами. Поля обозначают детали планирования следующим образом:
1
2
3
4
5
6
7
8
* * * * * command_to_be_executed
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └─ Day of the week (0 - 7) (Sunday = 0 or 7)
│ │ │ └───── Month (1 - 12)
│ │ └────────── Day of the month (1 - 31)
│ └─────────────── Hour (0 - 23)
└──────────────────── Minute (0 - 59)
Приведенный ниже фрагмент кода представляет содержимое файла /etc/crontab. Этот файл является общесистемным файлом crontab в Linux, который содержит запланированные задачи для различных пользователей. Все начинается с определения оболочки (/bin/bash
) и системного пути поиска (PATH
).
Переменная MAILTO
указывает получателя для любых выходных данных команды или ошибок. В последующих строках приведены примеры с комментариями, демонстрирующие синтаксис для определения заданий cron. Каждая строка показывает порядок следования единиц измерения времени (минута, час, день месяца, месяц и день недели), за которыми следует пользователь, и команды, которые должны быть выполнены в указанное время.
Этот файл служит справочным материалом и руководством по настройке заданий cron в системе Linux.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
Каждое поле может быть задано в виде отдельного значения, списка значений, разделенных запятыми, диапазона или звездочки (*) для обозначения всех возможных значений. Вот несколько примеров:
*
указывает все возможные значения для этого поля.5,10,15
обозначает значения 5, 10 и 15.1-5
представляет собой диапазон от 1 до 5.
Практические примеры
Пример 1: Запуск сценария каждый час
Чтобы запланировать запуск сценария каждый час, используйте следующую запись в crontab:
1
0 * * * * /path/to/script.sh
При этом в начале каждого часа выполняется скрипт, расположенный по адресу /path/to/script.sh
.
Пример 2: Запуск сценария каждый день в определённое время
Чтобы запланировать запуск скрипта каждый день в определенное время, используйте следующую запись в crontab:
1
30 9 * * * /path/to/script.sh
При этом скрипт выполняется в /path/to/script.sh
каждый день в 9:30 утра.
Пример 3: Запуск сценария в определённые дни недели
Чтобы запланировать запуск скрипта на определенные дни недели, используйте следующую запись в crontab:
1
0 10 * * 1,3,5 /path/to/script.sh
При этом скрипт выполняется в /path/to/script.sh
в 10:00 утра каждый понедельник, среду и пятницу.
Пример 4: Запуск сценария каждый месяц
Чтобы запланировать запуск скрипта каждый месяц на определенный день, используйте следующую запись в crontab:
1
0 12 15 * * /path/to/script.sh
При этом скрипт запускается в /path/to/script.sh
в 12:00 15-го числа каждого месяца.
Пример 5: Запуск сценария с регулярными интервалами
Чтобы запланировать запуск сценария с регулярными интервалами, например каждые 10 минут, используйте следующую запись в crontab:
1
*/10 * * * * /path/to/script.sh
При этом скрипт выполняется по адресу /path/to/script.sh
каждые 10 минут.
Управление записями в Crontab
Для управления записями в crontab вы можете использовать следующие команды:
crontab -e
- Открывает файл crontab для редактирования.crontab -l
- Показывает существующие записи crontab.crontab -r
- Удаляем все из crontab.
Вывод
Crontab - это ценный инструмент для автоматизации повторяющихся задач в Unix-подобных системах. С помощью примеров, приведенных в этой инструкции, вы сможете эффективно планировать свои задания cron и управлять ими. При создании записей в crontab не забывайте учитывать синтаксис и детали, зависящие от времени.