How to List Cron Jobs in Linux

By 

Updated on

4 min read

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

TaskCommand
List current user cron jobscrontab -l
List another user’s cron jobssudo 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 filescat /etc/crontab /etc/cron.d/*
List weekly cron scriptsls -l /etc/cron.weekly/
List systemd timerssystemctl 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:

Terminal
crontab -l

If 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:

Terminal
sudo crontab -u mark -l

Each 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:

Terminal
sudo ls -1 /var/spool/cron/crontabs

On Fedora, RHEL, and derivatives, run:

Terminal
sudo ls -1 /var/spool/cron

The output will look something like this:

output
root
mark

Listing 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:

Terminal
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:

Terminal
ls -l /etc/cron.weekly/
output
-rwxr-xr-x 1 root root 813 Feb 10  2019 man-db

If 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:

Terminal
systemctl list-timers
output
NEXT                         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.service

To include inactive timers as well, use the --all flag:

Terminal
systemctl list-timers --all

Troubleshooting

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

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