How to List Cron Jobs in Linux

Cron is a time-based scheduler that runs commands and scripts at defined intervals. These scheduled tasks are called cron jobs, and they can run every minute, hourly, daily, weekly, monthly, or on custom schedules.
Cron jobs are commonly used for system maintenance. For example, you can schedule database backups , package updates, cache cleanup, and report emails.
This guide explains how to view and list user cron jobs, system-wide cron jobs, and systemd timers.
Quick Reference
| Task | Command |
|---|---|
| List current user cron jobs | crontab -l |
| List another user’s cron jobs | sudo crontab -u USER -l |
| List users that have crontabs (Debian/Ubuntu) | sudo ls -1 /var/spool/cron/crontabs |
| List users that have crontabs (RHEL/Fedora) | sudo ls -1 /var/spool/cron |
| View system cron files | cat /etc/crontab /etc/cron.d/* |
| List weekly cron scripts | ls -l /etc/cron.weekly/ |
| List systemd timers | systemctl list-timers |
Listing User Cron Jobs
Users’ crontab files are named based on the user name, and their location varies by operating system. In Red Hat-based distributions, crontab files are stored in the /var/spool/cron directory, while on Debian and Ubuntu, files are stored in the /var/spool/cron/crontabs directory.
To view or list all cron jobs for the user you are currently logged in as, use the crontab
command:
crontab -lIf the user has set up cron jobs, the content of the user crontabs will be displayed on the screen. Otherwise, the command will print no crontab for <username>.
To list other users’ cron jobs, use the -u option to specify the user name at the end of the command. For example, to list the cron jobs of the user named “mark”, you would use:
sudo crontab -u mark -lEach user crontab file has 600 permissions and is owned by the user. Only root and users with sudo
privileges can view other users’ cron jobs.
To find out which users have created cron jobs, list
the content of the spool directory as root or sudo user.
On Debian, Ubuntu, and derivatives, run:
sudo ls -1 /var/spool/cron/crontabsOn Fedora, RHEL, and derivatives, run:
sudo ls -1 /var/spool/cronThe output will look something like this:
root
markListing System Cron Jobs
/etc/crontab and the files inside the /etc/cron.d directory are system-wide crontab files that can be edited only by the system administrators.
Use cat
, less
, or any text editor to view the content of the files:
cat /etc/crontab /etc/cron.d/*In most Linux distributions, you can also put scripts inside the /etc/cron.{hourly,daily,weekly,monthly} directories, and the scripts are executed every hour/day/week/month.
Each script inside these directories must have execute permission . Otherwise, the cron job will not be executed.
For example, to view all the weekly cron jobs, you would type:
ls -l /etc/cron.weekly/-rwxr-xr-x 1 root root 813 Feb 10 2019 man-dbIf the output is empty, it means that there are no weekly cron jobs.
Systemd Timers
Systemd timers
are unit files that end with the .timer suffix and allow you to run service units based on time.
On Linux distributions using systemd as an init system, systemd timers are often used as an alternative to the standard cron daemon.
To view a list of all active systemd timers on your machine, run the following command:
systemctl list-timersNEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2026-02-09 00:00:00 UTC 3h 12min left Sun 2026-02-08 00:00:00 UTC 20h ago logrotate.timer logrotate.service
Mon 2026-02-09 00:00:00 UTC 3h 12min left Sun 2026-02-08 00:00:00 UTC 20h ago man-db.timer man-db.service
Mon 2026-02-09 06:45:31 UTC 9h left Sun 2026-02-08 06:22:17 UTC 14h ago apt-daily.timer apt-daily.service
Mon 2026-02-09 06:53:04 UTC 10h left Sun 2026-02-08 06:41:39 UTC 14h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Mon 2026-02-09 20:48:56 UTC 24h left Sun 2026-02-08 20:48:56 UTC 3min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.serviceTo include inactive timers as well, use the --all flag:
systemctl list-timers --allTroubleshooting
crontab -l shows no crontab for <user>
This means the user has no personal crontab yet. Create one with crontab -e, save it, and run crontab -l again.
sudo crontab -u USER -l returns a permission error
Run the command as root or with a user that has sudo privileges. Also verify that the target user exists on the system.
A script exists in /etc/cron.weekly/ but does not run
Check that the script is executable (chmod +x /path/to/script) and has a valid shebang.
FAQ
What is the difference between crontab -l and /etc/crontab?crontab -l shows per-user jobs, while /etc/crontab is a system-wide crontab managed by administrators.
Where are user crontabs stored?
On Debian/Ubuntu, they are in /var/spool/cron/crontabs, and on RHEL/Fedora they are in /var/spool/cron.
Should we use cron or systemd timers?
Both work. Systemd timers integrate better with modern Linux service management and logging, while cron remains simple and widely used.
Conclusion
You can list per-user cron jobs with crontab -l, view system-wide schedules in /etc/crontab and /etc/cron.d, and check systemd timers with systemctl list-timers.
Tags
Linuxize Weekly Newsletter
A quick weekly roundup of new tutorials, news, and tips.
About the authors

Dejan Panovski
Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 800+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.
View author page