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

Когда /sbin/nologin установлен как оболочка, если пользователь с той оболочкой войдет в систему, то они получат вежливое сообщение, говоря, что 'Эта учетная запись в настоящее время не доступна'. Это сообщение может быть изменено с файлом /etc/nologin.txt.

/bin/false просто двоичный файл, который сразу выходит, возвращая false, когда это называют, поэтому когда кто-то, кто имеет false поскольку оболочка входит в систему, они сразу выходятся из системы когда false выходы. Установка оболочки к /bin/true имеет тот же эффект не разрешения кому-то войти в систему, но false вероятно, используется в качестве конвенции true так как это намного лучше в передаче понятия, что у человека нет оболочки.

Взгляд на nologinстраница справочника, это говорит, что было создано в 4.4 BSD (в начале 1990-х), таким образом, это прибыло намного позже false был создан. Использование false поскольку оболочка является, вероятно, просто конвенцией, перенесенной с первых лет UNIX.

nologin более удобная для пользователя опция, с настраиваемым сообщением, данным пользователю, пытающемуся входить в систему, таким образом, Вы теоретически хотели бы использовать это; но оба nologin и false будет иметь тот же конечный результат кого-то не наличием оболочки и неспособностью к ssh в.

213
07.02.2011, 21:44
4 ответа

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

150
27.01.2020, 19:28
  • 1
    Спасибо, я нашел их в /etc/cron.daily. Как делает это daily работа файла? Во сколько ежедневные задания будут работать? На моей машине они, кажется, обтекают полдень, но она хотела бы сказать моему системному администратору, как изменить это на полночь вместо этого. –  Frank 07.02.2011, 23:21
  • 2
    cron.daily называют /etc/crontab, например, в моей системе Ubuntu это: 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) что означает 6:25. –  Kowh 08.02.2011, 03:20
  • 3
    cron.daily называют от/etc/crontab в моей системе RHEL5 также, если Вы хотели бы больше точек данных. гул –  jsbillings 08.02.2011, 15:34
  • 4
    На более новом Fedora (и вероятно RHEL6 - еще не посмотрели), cronie демон заботится о тех, которые используют конфигурацию в /etc/anacrontab. –  mattdm 08.02.2011, 17:48
  • 5
    Иногда это находится в /var/cron также. –  CMCDragonkai 30.06.2014, 05:57

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

$ crontab -l

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

# crontab -l -u juser

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

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

/var/spool/cron/crontabs

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

/etc/crontab

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

/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

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

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

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

$ systemctl --user list-timers

Альтернатива изданию list-timers команда должна искать файлы единицы таймера (шаблон: *.timer) и символьные ссылки на них в обычной системе и пользователе 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

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

См. также:

146
27.01.2020, 19:28
  • 1
    я не сделал downvote. Но я просто попробовал crontab -l -u root (потому что те cronjobs я хочу знать о выполненном под root), и это говорит, что у меня нет полномочий использовать -u. –  Frank 07.02.2011, 23:00
  • 2
    Затем необходимо назвать его с достаточными полномочиями - т.е. как root пользователь. –  maxschlepzig 07.02.2011, 23:02
  • 3
    Все еще не завершенный — некоторые версии крона выполняют задания от/etc/cron.d и/etc/cron. {Ежедневно, каждый час, ежемесячно, еженедельно} без программы помощника, названной от/etc/crontab. –  mattdm 08.02.2011, 17:43
  • 4
    @maxschlepzig - но не всегда. И вопрос, "как может я получать список всех заданий крона"; ответ, который является "хорошо, вот является некоторыми из них", не ответ. –  mattdm 08.02.2011, 19:20
  • 5
    @maxschlepzig — cronie, как поставлено в Fedora и RHEL6, не обращайтесь к RHEL6 в /etc/crontab, но вместо этого используйте /etc/anacrontab. Я могу ошибиться о любой фактической реализации, которая не относится к ним ни в каком файле конфигурации. (Но затем, я не сделал downvote также.... Я просто говорю'.) –  mattdm 15.09.2011, 23:28

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

crontab -u username -l;

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

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

#!/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
27.01.2020, 19:28

Вы можете перечислить все задания cron с помощью (Я использую more, чтобы перечислить расположение в выходных данных):

sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' | less

Или без комментариев:

sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' \
   | grep "^\s*[^#]"

В crontab есть записи для запуска скриптов в cron.hourly, daily, weekly и ежемесячно -вы можете перечислить их с помощью:

ls /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
2
01.10.2020, 13:48

Теги

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