Como root, como posso listar os crontabs para todos os usuários?

47

Eu tenho um script sendo executado automaticamente que não consigo encontrar no crontab para os usuários esperados; portanto, gostaria de pesquisar todos os crontabs de usuários.

Essencialmente, eu quero executar um crontab -lpara todos os usuários.

Altamente Irregular
fonte

Respostas:

77

Bem, depende do script, mas facilmente você pode encontrar seu crontab como root com

crontab -l -u <user>

Ou você pode encontrar o crontab do spool, onde está localizado o arquivo para todos os usuários

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

Para mostrar as crontabs de todos os usuários com o nome de usuário impresso no início de cada linha:

cd /var/spool/cron/crontabs/ && grep . *
klerk
fonte
1
Incrível, procurando em / var / spool / cron / crontabs / funcionou bem, obrigado!
Altamente irregular
1
crontab -e -u <user>para editar ele funciona bem
vladkras
/var/spool/cron/<user>no meu host Centos 7.
Bob Stein
5

Um liner que lista todos os usuários e imprime cron para cada usuário:

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

Esta solução:

  • Não requer conhecimento de um caminho crontab específico do sistema (por exemplo, /var/spool/cron/crontabs/vs/var/spool/cron/
  • Não listará crons "órfãos", ou seja, crons para usuários que não existem mais (e, portanto, não são executados com eficiência)
Jakub Kukul
fonte
Nota: isso funciona para shmas não bash.
Tiw 16/07
0

No RHEL / OEL, é possível listar os trabalhos cron criados por todos os usuários:

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

Para ver os cronjobs do root:

#cat root
Vivek BS
fonte
A interface crontab (1) (comando) deve ser usada, pois protege contra a edição simultânea do banco de dados crontab.
Dirk