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