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

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

140 голосов | спросил Frank 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 22:44:55 +0300000000pmMon, 07 Feb 2011 22:44:55 +030011 2011, 22:44:55

3 ответа


113

В зависимости от того, как настроена ваша система 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/*), anacron (/etc/anacrontab и /var/spool/anacron/*) и, возможно, другие, о которых я забываю.

ответил jsbillings 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 23:58:51 +0300000000pmMon, 07 Feb 2011 23:58:51 +030011 2011, 23:58:51
94

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

$ crontab -l

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

# crontab -l -u juser

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

Кроме того, вы можете искать файлы спула. Обычно они сохраняются в /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, могут иметь экземпляры user systemd, в которых также настроены таймеры. Например, в Fedora по умолчанию запускается экземпляр user systemd для каждого пользователя, который в настоящий момент зарегистрирован. Их можно распознать через:

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

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

$ systemctl --user list-timers

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

$ 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

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

См. также:

ответил maxschlepzig 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 23:26:27 +0300000000pmMon, 07 Feb 2011 23:26:27 +030011 2011, 23:26:27
3

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

  

crontab -u username -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
ответил Manikandan Arunachalam 4 PM00000020000004231 2015, 14:33:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132