Come root, come posso elencare i crontab per tutti gli utenti?


47

Ho uno script eseguito automaticamente che non riesco a trovare nel crontab per gli utenti previsti, quindi mi piacerebbe cercarlo nei crontab di tutti gli utenti.

In sostanza, voglio eseguire un crontab -lper tutti gli utenti.

Risposte:


77

Bene dipende dallo script, ma facilmente puoi trovare il tuo crontab come root con

crontab -l -u <user>

Oppure puoi trovare crontab dallo spool dove si trova il file per tutti gli utenti

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

Per mostrare tutti i crontab degli utenti con il nome utente stampato all'inizio di ogni riga:

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

1
Fantastico, guardando in / var / spool / cron / crontabs / ha funzionato bene, grazie!
Altamente irregolare,

1
crontab -e -u <user>per modificarlo funziona anche
vladkras

/var/spool/cron/<user>sul mio host Centos 7.
Bob Stein,

5

Un liner che elenca tutti gli utenti e stampa cron per ogni utente:

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

Questa soluzione:

  • Non richiede la conoscenza di un percorso crontab specifico del sistema (ad es. /var/spool/cron/crontabs/Vs/var/spool/cron/
  • Non elencherà i croni "orfani", cioè i croni per gli utenti che non esistono più (e quindi non vengono eseguiti in modo efficace)

Nota: questo funziona per shma non bash.
Ti è venuto il

0

In RHEL / OEL puoi elencare i lavori cron creati da tutti gli utenti:

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

Per vedere i cronjob di root:

#cat root

Dovrebbe essere usata l'interfaccia (comando) crontab (1), in quanto protegge dalla modifica simultanea del database crontab.
Dirk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.