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 .

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 . *

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).

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

Die crontab (1) -Schnittstelle (Befehl) sollte verwendet werden, da sie vor dem gleichzeitigen Bearbeiten der crontab-Datenbank schützt.
Dirk
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.