Cron — это демон планирования, который позволяет планировать выполнение задач через определенные промежутки времени. Эти задачи называются заданиями cron и могут быть запланированы на выполнение по минуте, часу, дню месяца, месяцу, дню недели или любой их комбинации.
Задания Cron обычно используются для выполнения операций по обслуживанию системы. Например, задание cron можно настроить для автоматизации повторяющихся задач, таких как резервное копирование баз данных, обновление системы с помощью последних исправлений безопасности, очистка кэша, отправка электронных писем и т. д.
В этой статье объясняется, как составить список заданий cron.
Файлы crontab пользователей именуются в зависимости от имени пользователя, а их расположение зависит от операционной системы. В дистрибутивах на основе Red Hat, таких как CentOS, файлы crontab хранятся в каталоге /var/spool/cron, а в Debian и Ubuntu — в каталоге /var/spool/cron/crontabs.
Чтобы получить список всех заданий cron для пользователя, в котором вы сейчас зарегистрированы, используйте команду crontab:
crontab -l
Если пользователь настроил задания cron, содержимое пользовательских crontabs будет отображаться на экране. В противном случае команда напечатает no crontab for <username>.
Чтобы вывести список заданий cron других пользователей, используйте опцию -u для указания имени пользователя в конце команды. Например, чтобы перечислить задания cron пользователя с именем «andreyex», вы должны использовать:
sudo crontab -u andreyex -l
Каждый пользовательский файл crontab имеет разрешение 600 и принадлежит пользователю. Только root и пользователи с привилегиями sudo могут просматривать задания cron других пользователей.
Чтобы узнать, какие пользователи создали задания cron, перечислите содержимое каталога spool как пользователь root или sudo:
sudo ls -1 /var/spool/cron/crontabs
Вывод будет выглядеть примерно так:
root andreyex
/etc/crontab и файлы внутри каталога /etc/cron.d являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.
Используйте cat, less или любой текстовый редактор, чтобы просмотреть содержимое файлов:
cat /etc/crontab /etc/cron.d/*
В большинстве дистрибутивов Linux вы также можете поместить скрипты в каталоги /etc/cron.{hourly,daily,weekly,monthly}, и скрипты выполняются каждый час/день/неделя/месяц.
Каждый скрипт внутри этих каталогов должен иметь разрешение на выполнение. В противном случае задание cron не будет выполнено.
Например, чтобы просмотреть все еженедельные задания cron, введите:
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Если вывод пуст, это означает, что еженедельных заданий cron нет.
Системные таймеры — это файлы модулей, которые заканчиваются суффиксом *.timer и позволяют запускать сервисные модули в зависимости от времени.
В дистрибутивах, использующих systemd в качестве системы инициализации, таймеры используются в качестве альтернативы стандартному демону cron.
Чтобы просмотреть список всех системных таймеров на вашем компьютере, выполните следующую команду:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES Sun 2020-02-19 01:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service Sun 2020-02-19 01:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service Sun 2020-02-19 02:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service Sun 2020-02-19 04:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service Sun 2020-02-19 05:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Мы показали вам, как составить список заданий cron и системных таймеров.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.