Как просмотреть и перечислить задания Cron с помощью Crontab
Утилита cron в операционных системах, подобных Unix, позволяет пользователям планировать задачи (команды или скрипты) для автоматического выполнения в определенное время или через определенные интервалы. Независимо от того, поддерживаете ли вы сервер или управляете автоматизированными задачами на локальной машине, cron является важным инструментом для системных администраторов и разработчиков.
В этой статье объясняется, как просмотреть и перечислить задания cron с помощью команды
crontabЧто такое команда Crontab?
Crontab (сокращение от “cron table”) — это файл, который определяет запланированные задачи для демона cron. Каждый пользователь в системе, включая пользователя
rootЗапись в crontab имеет следующий синтаксис:
* * * * * 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)
Эта структура позволяет точно контролировать, когда задачи выполняются, что делает cron мощным инструментом автоматизации.
Как перечислить задания Cron с помощью Crontab
Команда
crontab1. Просмотр собственных заданий Cron
Чтобы отобразить задания cron для текущего вошедшего пользователя, выполните:
crontab -lЭта команда перечисляет все запланированные задания cron для текущего пользователя. Если заданий cron не существует, она может вернуть пустой вывод или сообщение, указывающее на то, что crontab не определен.
Пример вывода:
# m h dom mon dow command
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh
В этом примере:
- Скрипт резервного копирования выполняется ежедневно в полночь.
- Скрипт очистки выполняется каждое воскресенье в 2:30 ночи.
2. Перечисление заданий Cron для другого пользователя
Если у вас есть
sudo-usudo crontab -l -u usernameЗамените
usernamesudo crontab -l -u johnЭто отображает все задания cron, запланированные для указанного пользователя.
3. Перечисление системных заданий Cron
В дополнение к заданиям cron, специфичным для пользователей, существуют системные задания cron, запланированные системой или пользователем root. Обычно они хранятся в:
/etc/crontab/etc/cron.d//var/spool/cron/crontabs/
Чтобы просмотреть основной файл системного crontab, выполните:
cat /etc/crontabПример вывода:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Эта конфигурация планирует ежечасные, ежедневные, еженедельные и ежемесячные задачи по техническому обслуживанию системы.
Чтобы перечислить дополнительные системные файлы cron, выполните:
ls /etc/cron.d/Каждый файл в этом каталоге может определять дополнительные запланированные задачи для системных служб.
4. Просмотр заданий Cron в /var/spool/cron
Файлы crontab, специфичные для пользователей, обычно хранятся в
/var/spool/cron/crontabsls /var/spool/cron/crontabsЧтобы просмотреть содержимое файла crontab конкретного пользователя:
cat /var/spool/cron/crontabs/usernameЭто дает такой же вывод, как и
crontab -l -u usernameРедактирование заданий Cron
Чтобы редактировать или добавлять задания cron для текущего пользователя, выполните:
crontab -eЭто откроет файл crontab в текстовом редакторе по умолчанию. После сохранения и выхода изменения вступают в силу немедленно.
Пример: запуск скрипта каждый день в 3:00 ночи:
0 3 * * * /home/user/script.shРаспространенные команды для перечисления Crontab
- Перечислить задания cron текущего пользователя:
crontab -l - Перечислить задания cron другого пользователя (требуются права sudo):
sudo crontab -l -u username - Просмотреть системный crontab:
cat /etc/crontab - Перечислить файлы cron в /etc/cron.d/:
ls /etc/cron.d/ - Перечислить crontab пользователей:
ls /var/spool/cron/crontabs
Заключение
Просмотр и перечисление заданий cron с помощью
crontabОсвоив cron, вы можете автоматизировать повторяющиеся задачи, управлять резервными копиями и поддерживать последовательное выполнение скриптов в вашей среде.
