Я думал, что понял 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
- это та команда, но это явно не так.
Как указано в руководстве
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 и по умолчанию не доступны для записи другим пользователям.
Согласно 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?
cat /etc/cron.d/*
, похоже, показывает тот же тип списка для тех элементов, которые там развернуты, как crontab -l
отображается для элементов, развернутых через crontab.