Wie kann ich als root die crontabs für alle Benutzer auflisten?

47

Ich habe ein Skript, das automatisch ausgeführt wird und in der Crontab für die erwarteten Benutzer nicht gefunden wird. Daher möchte ich die Crontabs aller Benutzer danach durchsuchen.

Im Wesentlichen möchte ich ein crontab -lfür alle Benutzer ausführen .

Sehr unregelmäßig
quelle

Antworten:

77

Nun, hängt vom Skript ab, aber Sie können Ihre crontab leicht als root mit finden

crontab -l -u <user>

Oder Sie können crontab vom Spool finden, wo sich die Datei für alle Benutzer befindet

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

So zeigen Sie die Crontabs aller Benutzer mit dem Benutzernamen am Anfang jeder Zeile an:

cd /var/spool/cron/crontabs/ && grep . *
klerk
quelle
1
Super, schau in / var / spool / cron / crontabs / hat gut funktioniert, danke!
Sehr unregelmäßig
1
crontab -e -u <user>es zu bearbeiten funktioniert auch
vladkras
/var/spool/cron/<user>auf meinem Centos 7-Host.
Bob Stein
5

Ein Liner, der alle Benutzer auflistet und cron für jeden Benutzer ausgibt:

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

Diese Lösung:

  • Es ist nicht erforderlich, einen systemspezifischen Crontab-Pfad zu kennen (z. B. /var/spool/cron/crontabs/vs/var/spool/cron/
  • Es werden keine "verwaisten" Cron aufgelistet, dh Cron für Benutzer, die nicht mehr existieren (und daher nicht effektiv ausgeführt werden).
Jakub Kukul
quelle
Hinweis: Dies funktioniert shaber nicht bash.
Tiw
0

In RHEL / OEL können Sie die von allen Benutzern erstellten Cron-Jobs auflisten:

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

So zeigen Sie die Cronjobs von root an:

#cat root
Vivek BS
quelle
Die crontab (1) -Schnittstelle (Befehl) sollte verwendet werden, da sie vor dem gleichzeitigen Bearbeiten der crontab-Datenbank schützt.
Dirk