задания cron, хранящиеся в /etc/cron.d, работают, но не отображаются с помощью crontab -l в RHEL4

Я думал, что понял cron, но похоже, что нет.

Я использую cron в Red Hat Enterprise Linux v. 4

Мы организуем задания cron, сохраняя их в / etc /cron.d. Все они принадлежат пользователю root. (имеют root в спецификации cron в файле .cron)

При хранении там, если они правильно закодированы, задания выполняются.

Однако, даже если вы вошли в систему как root

crontab -l

не перечисляет задания в /etc/cron.d, даже если они действительно выполняются.

Что я не понимаю? Каждый поиск в Интернете, который я делал по этому поводу, говорит мне, что crontab - l - это команда, которую нужно запустить. Однако она не перечисляет все выполняемые задания.

ОБНОВЛЕНИЕ: Поскольку это было непонятно, мой вопрос на самом деле

Какая команда позволяет вам видеть все задания cron, которые запланированы для запуска для данного пользователя?

Вы можете найти множество источников, в которых говорится, что crontab -l - это та команда, но это явно не так.

0
06.10.2016, 21:16
3 ответа

Как указано в руководстве

crontab -l

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

/var/spool/cron/root

, если вы являетесь пользователем root.

crontab -u other -l

для другого пользователя. Отредактируйте crontab с помощью

crontab -e

Формат:

#.---------------- minute (0 - 59)
#|      .------------- hour (0 - 23)
#|      |       .---------- day of month (1 - 31)
#|      |       |       .------- month (1 - 12) OR jan,feb,mar,apr ...
#|      |       |       |       .---- day of week (0 - 6) (Sunday=0 or 7)  OR sun,mon,tue,wed,thu,fri,sat
#|      |       |       |       |
#*      *       *       *       *       the command to be executed

0       */2     *       *       *       /every2h.sh

В дополнение к этому существует также

find  /etc/cron* -type f

, который не рекомендуется использовать, поскольку он предназначен для распределительных заданий cron. все эти файлы запускаются от имени пользователя root и по умолчанию не доступны для записи другим пользователям.

3
28.01.2020, 02:34

Согласно man crontab , существует опция -u для добавления имени пользователя.

Чтобы отобразить запланированные задания для пользователя, используется следующее:

crontab -l -u username

И вам необходимо иметь права суперпользователя для его использования. Если вы не являетесь пользователем root , используйте его как:

sudo crontab -l -u username

И, согласно man crond и / etc / crontab , команды нет. чтобы показать пользователей, владеющих вакансиями. Владельцы заданий сохраняются в файлах со следующей структурой:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

Таким образом, я думаю, вам придется искать имена пользователей в каждом файле или писать сценарий bash, чтобы выбрать и перечислить их.

Также проверьте этот вопрос: В чем разница между /etc/cron.d и / var / spool / cron?

0
28.01.2020, 02:34

cat /etc/cron.d/*, похоже, показывает тот же тип списка для тех элементов, которые там развернуты, как crontab -l отображается для элементов, развернутых через crontab.

-1
28.01.2020, 02:34

Теги

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