Как отобразить и перечислить задания Cron с помощью Crontab ⋆ ALexHost SRL

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills
27.12.2024

Как отобразить и перечислить задания Cron с помощью Crontab

Утилита cron в Unix-подобных операционных системах позволяет пользователям планировать задания (команды или скрипты) для автоматического выполнения в определенное время или через определенные промежутки времени. Независимо от того, обслуживаете ли вы сервер или управляете автоматизированными задачами на своей локальной машине, cron – незаменимый инструмент как для системных администраторов, так и для разработчиков.

В этой статье мы расскажем, как отображать и выводить список заданий 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
    ) запускается каждый день в полночь.
  • Сценарий очистки
    (cleanup.sh
    ) запускается каждое воскресенье в 2:30 AM.

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 )

В этом примере:

  • /etc/cron.hourly
    задания запускаются на 17-й минуте каждого часа.
  • задания
    /etc/cron.daily
    выполняются каждый день в 6:25 утра.
  • задания
    /etc/cron.weekly
    выполняются каждое воскресенье в 6:47 утра.
  • задания
    /etc/cron.monthly
    выполняются в первый день каждого месяца в 6:52 AM.

Вы также можете просмотреть задания в файле /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, вы сможете автоматизировать повторяющиеся задачи, поддерживать резервное копирование и обеспечивать последовательное выполнение скриптов во всей среде.

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!.

Используйте код при регистрации:

Skills