Как root, как я могу перечислить crontabs для всех пользователей?


47

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

По сути, я хочу запустить crontab -lдля всех пользователей.

Ответы:


77

Хорошо зависит от скрипта, но вы легко можете найти свой crontab как root с

crontab -l -u <user>

Или вы можете найти crontab из спула, где находится файл для всех пользователей

cat /var/spool/cron/crontabs/<user>

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

cd /var/spool/cron/crontabs/ && grep . *

1
Круто, смотря в / var / spool / cron / crontabs / работал отлично, спасибо!
Сильно нерегулярный

1
crontab -e -u <user>редактировать это работает также
vladkras

/var/spool/cron/<user>на моем хосте Centos 7.
Боб Стейн

5

Один лайнер, который перечисляет всех пользователей и печатает cron для каждого пользователя:

for user in $(getent passwd | cut -f1 -d: ); do echo $user; crontab -u $user -l; done

Это решение:

  • Не требует знания системного пути crontab (например, /var/spool/cron/crontabs/vs/var/spool/cron/
  • Не будет перечислять «бесхозные» кроны, то есть кроны для пользователей, которые больше не существуют (и, следовательно, не выполняются эффективно)

Примечание: это работает, shно нет bash.
Ий

0

В RHEL / OEL вы можете перечислить задания cron, созданные всеми пользователями:

#cd /var/spool/cron/
#ls -1
root
oracle
user1

Чтобы увидеть cronjobs рута:

#cat root

Следует использовать интерфейс (команду) crontab (1), поскольку он защищает от одновременного редактирования базы данных crontab.
Дирк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.