Listing cron jobs in Linux provides clear visibility into recurring automation such as backups, log rotation, monitoring, and cleanup tasks. Understanding what is scheduled reduces surprises, helps troubleshoot performance issues, and makes compliance audits easier.
The cron subsystem is usually implemented by the cron or crond daemon, which reads configuration from user crontabs and system-wide files. User-specific schedules live in per-account crontabs, while packages and administrators often add entries under /etc/ and related cron directories.
Access to cron configuration depends on file permissions and user privileges. Some locations are world-readable, while others require sudo. Direct edits to system cron files can affect the entire machine, so viewing and auditing entries safely is important before making changes.
Steps to list cron jobs in Linux:
- Open a terminal session on the Linux system.
- List the current user’s cron jobs using the crontab command.
$ crontab -l # Edit this file to introduce tasks to be run by cron. # # m h dom mon dow command 0 5 * * * /usr/local/bin/backup.sh 15 * * * * /usr/local/bin/rotate-logs.sh ##### snipped #####
The crontab -l command prints only the crontab for the user running the command.
- View cron jobs for a specific user such as root.
$ sudo crontab -l -u root # Root user crontab */10 * * * * /usr/local/sbin/check-raid.sh 0 2 * * 0 /usr/local/sbin/full-system-scan.sh ##### snipped #####
Listing or editing another user’s crontab requires appropriate privileges and may affect system-wide behavior when targeting root.
- Display the main system-wide cron file under /etc/.
$ sudo cat /etc/crontab SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) ##### snipped #####
In /etc/crontab the first five fields are the schedule, followed by the user account that runs the command, then the command itself.
- List additional system cron definitions provided by packages in /etc/cron.d/.
$ sudo ls -1 /etc/cron.d anacron logrotate sysstat ##### snipped #####
Files in /etc/cron.d/ follow crontab syntax and are usually installed by system packages or configuration management.
- List periodic cron script directories such as hourly, daily, weekly, and monthly.
$ sudo ls -1 /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly 2>/dev/null /etc/cron.hourly: 0anacron hourly-maintenance /etc/cron.daily: apt-compat logrotate mlocate ##### snipped #####
These directories hold executable scripts that run at fixed intervals, typically orchestrated by entries in /etc/crontab or anacron.
- Inspect per-user cron spool files to see configured crontabs for all accounts.
$ sudo ls -1 /var/spool/cron /var/spool/cron/crontabs 2>/dev/null /var/spool/cron: root backup /var/spool/cron/crontabs: root www-data ##### snipped #####
Directly editing files under /var/spool/cron or /var/spool/cron/crontabs can corrupt crontabs; use crontab -e for changes instead of editing these files by hand.
- Optionally search across all cron-related locations for specific commands or patterns.
$ sudo grep --line-number --ignore-case "backup" /etc/crontab /etc/cron.d/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /var/spool/cron/* /var/spool/cron/crontabs/* 2>/dev/null /etc/cron.daily/daily-backup:12:/usr/local/bin/backup.sh /var/spool/cron/root:3:0 5 * * * /usr/local/bin/backup.sh ##### snipped #####
Using grep across cron paths quickly reveals where a particular command or keyword is scheduled.
- Verify that the cron daemon is active so that listed jobs are actually being scheduled.
$ systemctl status cron ● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2025-12-11 09:15:01 UTC; 20min ago ##### snipped #####On some distributions the service name is crond instead of cron, in which case systemctl status crond provides the same confirmation.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
Comment anonymously. Login not required.
