Как проверить, запланирована ли задача cron в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять запланированные задачи cron на системе Linux. Вы начнете с просмотра пользовательских задач cron с помощью команды crontab -l.

Затем вы изучите системные настройки cron, проверив файл /etc/crontab и изучив расписания, определенные в каталогах /etc/cron.*. Этот практический опыт предоставит вам необходимые навыки для определения и понимания того, как задачи запланированы для автоматического выполнения на системе Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/crontab("Job Scheduling") subgraph Lab Skills linux/ls -.-> lab-558705{{"Как проверить, запланирована ли задача cron в Linux"}} linux/cat -.-> lab-558705{{"Как проверить, запланирована ли задача cron в Linux"}} linux/crontab -.-> lab-558705{{"Как проверить, запланирована ли задача cron в Linux"}} end

Просмотр пользовательских задач cron с помощью команды crontab -l

На этом этапе вы научитесь просматривать запланированные задачи для текущего пользователя с помощью команды crontab.

Cron - это планировщик задач на основе времени в операционных системах типа Unix. Он позволяет пользователям запланировать выполнение команд или скриптов автоматически в определенное время или дату. Эти запланированные задачи часто называются "задачами cron" (cron jobs).

Каждый пользователь системы может иметь свою собственную коллекцию задач cron. Они хранятся в специальном файле, называемом "crontab" (таблица cron).

Чтобы просмотреть задачи cron для текущего пользователя (labex), вы будете использовать команду crontab с опцией -l. Опция -l означает "список" (list).

Если вы еще не открыли терминал, откройте его. Помните, что вы можете найти значок Xfce Terminal слева на рабочем столе.

Введите следующую команду в терминале и нажмите Enter:

crontab -l

Если вы еще не настроили никаких задач cron для пользователя labex, вы, скорее всего, увидите сообщение, указывающее, что нет записей в crontab. Это ожидаемое поведение для новой пользовательской среды.

no crontab for labex

Этот вывод подтверждает, что у пользователя labex в настоящее время нет запланированных личных задач cron.

Если бы у пользователя labex были какие - либо запланированные задачи, они были бы перечислены здесь, показывая расписание и команду, которая должна быть выполнена.

Понимание того, как просматривать существующие задачи cron, является первым шагом в управлении запланированными задачами на системе Linux. В следующих шагах вы изучите системные настройки cron.

Нажмите Продолжить (Continue), чтобы перейти к следующему шагу.

Проверка системного crontab в файле /etc/crontab

На предыдущем этапе вы узнали, как просматривать задачи cron для конкретного пользователя. Теперь давайте рассмотрим системные задачи cron, которые обычно настраиваются в файле /etc/crontab.

В отличие от пользовательских crontab, управляемых командой crontab, файл /etc/crontab представляет собой системный файл конфигурации, который может быть отредактирован непосредственно системным администратором (или пользователем с привилегиями sudo). Этот файл часто содержит задачи cron, необходимые для работы системы.

Чтобы просмотреть содержимое файла /etc/crontab, вы можете использовать текстовый просмотрщик командной строки, такой как cat или less. Поскольку /etc/crontab - это системный файл, вам, возможно, понадобится sudo для его чтения, хотя в среде LabEx обычно можно читать его без sudo. Давайте используем cat для вывода содержимого непосредственно в терминал.

Введите следующую команду и нажмите Enter:

cat /etc/crontab

Вы увидите содержимое системного файла crontab. Он может выглядеть примерно так:

## /etc/crontab: system-wide crontab
## Unlike any other crontab you might learn about, this file has a fifth field
## which is the user that the command will run as.
#
## min hour day month wday user command
## ---- ---- --- ----- ---- ---- -------
#
## Example of job execution:
## .---------------- 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 to run job as
## |  |  |  |  |  |  . command to be executed
## |  |  |  |  |  |  |
## *  *  *  *  *  user command
#
... (other entries)

Обратите внимание на структуру этого файла. Он содержит комментарии, объясняющие формат, и каждая строка, представляющая задачу cron, имеет дополнительное поле по сравнению с пользовательскими crontab: поле user. Это поле указывает, от имени какого пользователя должна быть выполнена команда.

Системные crontab часто используются для таких задач, как обновление системы, ротация журналов и другие задачи обслуживания, которые должны выполняться с повышенными привилегиями или от имени определенного системного пользователя.

Изучение файла /etc/crontab позволяет вам понять, какие автоматические задачи запланированы на системном уровне.

Нажмите Продолжить (Continue), чтобы перейти к следующему этапу, где вы рассмотрите другие места хранения системных задач cron.

Проверка расписаний cron в директориях /etc/cron.*

В дополнение к основному файлу /etc/crontab, многие дистрибутивы Linux используют директории, такие как /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/, для организации системных задач cron.

Эти директории предоставляют более структурированный способ управления запланированными задачами. Скрипты, помещенные в /etc/cron.hourly/, выполняются каждый час, в /etc/cron.daily/ - каждый день и так далее. Точное время выполнения обычно контролируется скриптом в /etc/crontab, который периодически запускает эти директории.

Давайте проверим содержимое этих директорий, чтобы увидеть, какие системные задачи запланированы.

Сначала выведем список файлов в директории /etc/cron.d/. Эта директория часто содержит файлы, установленные пакетами, которые определяют конкретные задачи cron.

Введите следующую команду и нажмите Enter:

ls /etc/cron.d/

Вы, возможно, увидите вывод, похожий на этот, в котором перечислены файлы в директории:

anacron  e2scrub_all  phpsessionclean

Эти файлы содержат определения задач cron, аналогичные по формату /etc/crontab (включая поле пользователя). Вы можете просмотреть содержимое любого из этих файлов с помощью команды cat. Например, чтобы просмотреть файл anacron:

cat /etc/cron.d/anacron

Далее, давайте посмотрим на директории для часовых, ежедневных, еженедельных и ежемесячных задач. Мы можем вывести список файлов в этих директориях с помощью команды ls.

Поочередно введите следующие команды и нажимайте Enter после каждой:

ls /etc/cron.hourly/
ls /etc/cron.daily/
ls /etc/cron.weekly/
ls /etc/cron.monthly/

В этих директориях вы, возможно, увидите различные скрипты или файлы. Например, /etc/cron.daily/ часто содержит скрипты для таких задач, как обновление списка пакетов, очистка временных файлов или ротация журналов.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

Эти скрипты автоматически выполняются системой cron с указанными интервалами (каждый час, каждый день, каждую неделю, каждый месяц).

Изучив файлы в /etc/crontab и директории /etc/cron.*, вы можете получить полное представление о автоматических задачах, выполняемых на системе. Это важно для системного администрирования и устранения неполадок.

Теперь вы исследовали основные места для просмотра как пользовательских, так и системных задач cron.

Нажмите Продолжить (Continue), чтобы завершить этот практический урок.

Резюме

В этом практическом уроке вы узнали, как проверять запланированные задачи cron в Linux. Вы начали с просмотра пользовательских задач cron с помощью команды crontab -l, понимая, что каждый пользователь может иметь свой собственный набор запланированных задач, хранящихся в его файле crontab. Вы узнали, как интерпретировать вывод, включая сообщение о том, что у текущего пользователя нет существующих задач cron.

Затем вы начали изучать системные настройки cron, сконцентрировавшись в частности на файле /etc/crontab. Этот файл используется для системных задач cron и управляется непосредственно системным администратором, в отличие от пользовательских crontab. Понимание как пользовательских, так и системных мест хранения задач cron является важным для комплексной проверки запланированных задач на системе Linux.