Jako root, jak mogę wyświetlić listy crontab dla wszystkich użytkowników?

47

Mam skrypt uruchamiany automatycznie, którego nie mogę znaleźć w crontabie dla oczekiwanych użytkowników, dlatego chciałbym wyszukać go w crontabach wszystkich użytkowników.

Zasadniczo chcę uruchomić crontab -ldla wszystkich użytkowników.

Wysoce nieregularne
źródło

Odpowiedzi:

77

Cóż, zależy od skryptu, ale łatwo możesz znaleźć crontab jako root

crontab -l -u <user>

Lub możesz znaleźć crontab ze szpuli, w której znajduje się plik dla wszystkich użytkowników

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

Aby wyświetlić tabele wszystkich użytkowników z nazwą użytkownika wydrukowaną na początku każdego wiersza:

cd /var/spool/cron/crontabs/ && grep . *
klerk
źródło
1
Niesamowite, wyglądające w / var / spool / cron / crontabs / działało ładnie, dzięki!
Wysoce nieregularny
1
crontab -e -u <user>edycja również działa
vladkras
/var/spool/cron/<user>na moim hoście Centos 7.
Bob Stein
5

Jedna linijka, która zawiera listę wszystkich użytkowników i drukuje cron dla każdego użytkownika:

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

To rozwiązanie:

  • Nie wymaga znajomości ścieżki crontab specyficznej dla systemu (np. /var/spool/cron/crontabs/Vs/var/spool/cron/
  • Nie będzie wyświetlać „osieroconych” cronów, tj. Cronów dla użytkowników, którzy już nie istnieją (a zatem nie są wykonywani skutecznie)
Jakub Kukul
źródło
Uwaga: działa to, shale nie bash.
Tiw
0

W RHEL / OEL możesz wyświetlić listę zadań cron utworzonych przez wszystkich użytkowników:

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

Aby zobaczyć cronjobs roota:

#cat root
Vivek BS
źródło
Należy użyć interfejsu (polecenia) crontab (1), ponieważ chroni on przed jednoczesną edycją bazy danych crontab.
Dirk