Введение
Cron — это демон планирования, который позволяет планировать выполнение задач через определенные промежутки времени. Эти задачи называются заданиями cron и могут быть запланированы для запуска по минутам, часам, дням месяца, месяцам, дням недели или любой их комбинации.
Задания Cron обычно используются для выполнения задач по обслуживанию системы. Например, вы можете настроить задание cron для автоматизации повторяющихся задач, таких какрезервное копирование баз данных, обновление системы с помощью последних исправлений безопасности, очистка кэша, отправка электронных писем и т. д.
В этой статье объясняется, как составить список заданий Cron.
Список заданий Cron пользователей
Пользовательские файлы crontab называются по имени пользователя, и их расположение зависит от операционной системы. В дистрибутивах на основе Red Hat, таких как CentOS, файлы crontab хранятся в каталоге /var/spool/cron
, а в Debian и Ubuntu файлы хранятся в каталоге /var/spool/cron/crontabs
.
Чтобы получить список всех заданий Cron для пользователя, под которым вы сейчас вошли, используйте команду crontab
:
crontab -l
Если пользователь настроил задание cron, содержимое пользовательских crontab будет отображаться на экране. В противном случае команда не напечатает no crontab for <username>
.
Чтобы просмотреть задания cron других пользователей, используйте параметр -u
, чтобы указать имя пользователя в конце команды. Например, чтобы перечислить задания cron пользователя с именем «alice», вы должны использовать:
sudo crontab -u alice -l
Каждый пользовательский файл crontab имеет 600
разрешений и принадлежит пользователю. Только root и пользователи с привилегиями sudo
могут просматривать задания cron других пользователей.
Чтобы узнать, какие пользователи создали задания cron, укажите содержимое каталога spool
как root или sudo:
sudo ls -1 /var/spool/cron/crontabs
Вывод будет выглядеть следующим образом:
root
alice
Список заданий Cron в системе
Файл /etc/crontab
и файлы в каталоге /etc/cron.d
являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.
Используйте cat
, less
или любой текстовый редактор для просмотра содержимого файлов:
cat /etc/crontab /etc/cron.d/*
В большинстве дистрибутивов Linux вы также можете поместить сценарии в каталоги /etc/cron.{hourly,daily,weekly,monthly}
, и сценарии будут запускаться каждый hour/day/week/month
.
Любой сценарий в этих каталогах должен иметь разрешение на выполнение. В противном случае задание cron не будет запущено.
Например, чтобы просмотреть все еженедельные задания Cron, введите:
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 811 Feb 21 2020 man-db
Если вывод пуст, это означает, что еженедельных заданий cron нет.
Системный таймер
Таймеры systemd — это юнит-файлы, которые заканчиваются суффиксом *.timer
и позволяют запускать служебные юниты в зависимости от времени.
В дистрибутивах, использующих systemd в качестве системы инициализации, таймеры используются как альтернатива стандартному демону cron.
Чтобы просмотреть список всех таймеров systemd на вашем компьютере, выполните следующую команду:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sat 2020-02-22 18:22:30 CET 17min left Sat 2020-02-22 17:22:29 CET 42min ago dnf-makecache.timer dnf-makecache.service
Sun 2020-02-23 00:00:00 CET 5h 55min left Sat 2020-02-22 16:11:58 CET 1h 52min ago unbound-anchor.timer unbound-anchor.service
Sun 2020-02-23 16:26:55 CET 22h left Sat 2020-02-22 16:26:55 CET 1h 37min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2020-02-24 00:00:00 CET 1 day 5h left Sat 2020-02-22 16:11:58 CET 1h 52min ago fstrim.timer fstrim.service
Вывод
Мы показали вам, как составить список заданий Cron и системных таймеров.