it-swarm-ru.tech

Как получить список всех запланированных заданий cron на моем компьютере?

Мой системный администратор настроил кучу заданий cron на моей машине. Я хотел бы точно знать, что запланировано на какое время. Как я могу получить этот список?

215
Frank

В зависимости от того, как настроена ваша система Linux, вы можете посмотреть:

  • /var/spool/cron/* (пользовательские crontabs)
  • /etc/crontab (общесистемный crontab)

также многие дистрибутивы имеют:

  • /etc/cron.d/* Эти конфигурации имеют тот же синтаксис, что и /etc/crontab

  • /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly

Это просто каталоги, которые содержат исполняемые файлы, которые выполняются ежечасно, ежедневно, еженедельно или ежемесячно для каждого имени каталога.

Кроме того, вы можете иметь на рабочих местах (проверьте /var/spool/at/*), анакрон (/etc/anacrontab а также /var/spool/anacron/*) и, вероятно, другие, которые я забыл.

150
jsbillings

С большинством Crons (например, Vixie-Cron - по умолчанию Debian/Ubuntu, Cronie - по умолчанию Fedora, Solaris Cron ...) вы получаете список запланированных заданий cron для текущего пользователя через:

$ crontab -l

или для другого пользователя через

# crontab -l -u juser

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

Кроме того, вы можете посмотреть файлы спула. Обычно они сохраняются под /var/spool/cron, например для vcron следующий каталог

/var/spool/cron/crontabs

содержит все настроенные crontabs всех пользователей - кроме пользователя root, который также может настраивать задания через общесистемный crontab, расположенный по адресу

/etc/crontab

С cronie (по умолчанию в Fedora/CentOS) появляется .d каталог конфигурации стиля для системных заданий cron, а также:

/etc/cron.d

(Как всегда, .d каталог упрощает ведение записей конфигурации, которые являются частью разных пакетов.)

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

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

Своевременное выполнение этих сценариев обычно осуществляется через run-parts записи в системном crontab или через anacron .

С помощью Systemd (например, в Fedora, CentOS 7, ...) периодическое выполнение задания можно дополнительно настроить с помощью единицы таймера . Включенные системные таймеры могут отображаться через:

$ systemctl list-timers

Обратите внимание, что пользователи помимо root могут также запускать экземпляры systemd пользователей, на которых настроены таймеры. Например, в Fedora по умолчанию пользовательский экземпляр systemd запускается для каждого пользователя, который в данный момент вошел в систему. Их можно узнать с помощью:

$ ps aux | grep 'systemd[ ]--user'

Эти пользовательские таймеры могут быть перечислены через:

$ systemctl --user list-timers

Альтернатива выдаче list-timers команда для поиска файлов единиц таймера (шаблон: *.timer) и символические ссылки на них в обычных каталогах system и user systemd config:

$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
              -o -path '/home/*/.config/systemd/*' ')' \
      -name '*.timer'  2> /dev/null

(Как и в случае с обычными сервисными модулями, модуль таймера включается путем создания символической ссылки в правильном каталоге конфигурации systemd.)

Смотрите также:

149
maxschlepzig

Перечислить все кроны для данного пользователя.

crontab -u имя пользователя -l;

Чтобы перечислить все кроны для всех пользователей

Запустите его как супер пользователь

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done
5
Manikandan Arunachalam