Friday, January 21, 2011

Does exist a method to list all jobs in crontab for all users on a system

The title says everything.

I'm using Fedora 11.

  • cat /var/spool/cron/*

    Many distributions have additional system crons configured via /etc as well. For example, CentOS has files in /etc/cron*

    Let me know if you have any further questions.

    From Warner
  • I don't think so

    You could do something like this:

    for crontab in `ls /etc/cron.*/* /var/spool/cron/* /etc/crontab`
    do
    echo $crontab
    cat $crontab
    done
    
  • There is no native command to do this, but you can use a simple bash oneliner like this:

    for u in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $u -l; done
    

    The above would read out all user entries in /etc/passwd and list their appropriate crontab entries. sudo usage is required, since you'd need superuser privileges to access another user's cron.

    Luc M : Perferct! Thank you very much.
    ktower : This assumes your users are all listed in /etc/passwd. If you use a different naming service, say for example LDAP, to define your user namespace, they will not appear in /etc/passwd. You might instead consider using "getent passwd" in place of the cut command above.

0 comments:

Post a Comment