How to list the cron jobs on Linux, for every user
Updated 16 October 2026
The jobs of a server can be in several places: each user’s crontab, the system crontab, /etc/cron.d/, the /etc/cron.daily/ directories and, more and more, systemd timers. To review the tasks scheduled with cron and systemd on a server, check each one.
Your crontab
crontab -l
If you have none, it says no crontab for and your user. To edit it, crontab -e.
The crontab of another user, or of all of them
sudo crontab -l -u www-data
To go through the users that the system knows, as root:
sudo sh -c 'for user in $(getent passwd | cut -d: -f1); do
crontab -l -u "$user" 2>/dev/null | grep -v "^\s*#" | sed "s/^/$user: /"
done'
Each line comes with the name of its user, and the comments are left out. getent passwd lists the local accounts and those of the other sources the system uses, though some, like an LDAP directory, may not list all of their users.
The crontabs are kept as one file per user in /var/spool/cron/crontabs/ on Debian and Ubuntu, and in /var/spool/cron/ on RHEL, Fedora and Rocky. To change them, use crontab -e -u <user>, not those files.
The system crontab and /etc/cron.d
cat /etc/crontab
ls /etc/cron.d/
cat /etc/cron.d/*
Their lines have one more field, with the user that runs the command, after the schedule. Packages often install their jobs in /etc/cron.d/.
/etc/cron.hourly, daily, weekly and monthly
The scripts in these directories have no schedule of their own: /etc/crontab, or anacron, runs them all with run-parts.
ls /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
run-parts --test /etc/cron.daily # Debian, Ubuntu: the ones it would run
run-parts --test leaves out the files it would ignore, like those with a dot in their name.
systemd timers
Many distributions now schedule their jobs with systemd timers instead of cron. To see them all, with their next and last run:
systemctl list-timers --all
Those are the system’s. Each user can also have their own, which this command shows for the current user:
systemctl --user list-timers --all
Decide which ones to watch
With the list in hand, the jobs to watch are the ones whose failure you would notice late: backups, imports, renewals, reports. An AI agent with access to your server, like Claude Code, can read the crontab and use CronDrive’s MCP server to create a monitor for each line; the steps are in the docs.