[unix] 루트로서 모든 사용자의 crontab을 어떻게 나열합니까?

예상되는 사용자의 crontab에서 찾을 수없는 스크립트가 자동으로 실행되고 있으므로 모든 사용자의 crontab을 검색하고 싶습니다.

본질적 crontab -l으로 모든 사용자 를 위해 실행하고 싶습니다 .



답변

스크립트에 따라 다르지만 crontab을 루트로 쉽게 찾을 수 있습니다.

crontab -l -u <user>

또는 모든 사용자의 파일이있는 스풀에서 crontab을 찾을 수 있습니다

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

각 줄의 시작 부분에 사용자 이름이 인쇄 된 모든 사용자의 crontab을 표시하려면 다음을 수행하십시오.

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


답변

모든 사용자를 나열하고 모든 사용자에 대해 cron을 인쇄하는 하나의 라이너 :

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

이 솔루션 :

  • 시스템 특정 crontab 경로를 알 필요가 없습니다 (예 : /var/spool/cron/crontabs/vs/var/spool/cron/
  • 더 이상 존재하지 않아서 효과적으로 실행되지 않는 사용자를위한 “고아”크론, 즉 크론을 나열하지 않습니다.

답변

RHEL / OEL에서 모든 사용자가 작성한 cron 작업을 나열 할 수 있습니다.

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

루트의 크론 작업을 보려면

#cat root


답변