Listing systemd timers shows which scheduled jobs the service manager is waiting to trigger next. That quick inventory is useful when checking whether recurring maintenance, package refreshes, backups, or custom automation are actually queued to run on the host.
The systemctl list-timers view asks the running systemd manager for timer units currently loaded in memory and prints them in next-elapse order. The columns show the next scheduled run, how long remains until that run, when the timer last ran, how long ago that happened, the timer unit name, and the service unit it activates.
The default view does not equal every timer unit file installed on disk. Adding --all includes loaded timers that are not currently waiting for a future elapse, while systemctl list-unit-files –type=timer shows the broader installed inventory. Per-user timers live under systemctl --user instead of the system manager, and some timer properties can remain empty when a timer has not fired yet in the current manager instance.
Add sudo only when the host restricts timer or journal details; the listing commands themselves are read-only.
$ systemctl list-timers --no-pager NEXT LEFT LAST PASSED UNIT ACTIVATES Mon 2026-04-13 13:50:14 UTC 14min - - systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Mon 2026-04-13 17:35:40 UTC 4h 0min - - motd-news.timer motd-news.service Tue 2026-04-14 00:00:00 UTC 10h - - dpkg-db-backup.timer dpkg-db-backup.service Tue 2026-04-14 04:40:20 UTC 15h - - apt-daily.timer apt-daily.service Tue 2026-04-14 06:51:54 UTC 17h - - apt-daily-upgrade.timer apt-daily-upgrade.service Sun 2026-04-19 03:10:23 UTC 5 days - - e2scrub_all.timer e2scrub_all.service 6 timers listed. Pass --all to see loaded but inactive timers, too.
The default view is already ordered by the next elapse time, so the timers closest to firing appear first.
$ systemctl list-timers --all --no-pager NEXT LEFT LAST PASSED UNIT ACTIVATES Mon 2026-04-13 13:50:14 UTC 14min - - systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Mon 2026-04-13 17:35:40 UTC 4h 0min - - motd-news.timer motd-news.service Tue 2026-04-14 00:00:00 UTC 10h - - dpkg-db-backup.timer dpkg-db-backup.service Tue 2026-04-14 04:40:20 UTC 15h - - apt-daily.timer apt-daily.service Tue 2026-04-14 06:51:54 UTC 17h - - apt-daily-upgrade.timer apt-daily-upgrade.service Sun 2026-04-19 03:10:23 UTC 5 days - - e2scrub_all.timer e2scrub_all.service - - - - fstrim.timer fstrim.service 7 timers listed.
A row with - in NEXT and LEFT is loaded but does not currently have a future elapse scheduled in this manager instance.
$ systemctl list-timers 'apt-daily.timer' --all --no-pager --no-legend Tue 2026-04-14 04:40:20 UTC 15h - - apt-daily.timer apt-daily.service 1 timer listed.
Quote glob patterns such as 'apt-*' so the shell passes them to systemctl unchanged.
$ systemctl list-timers --all --state=active --no-pager --no-legend Mon 2026-04-13 13:50:14 UTC 14min - - systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Mon 2026-04-13 17:35:40 UTC 4h 0min - - motd-news.timer motd-news.service Tue 2026-04-14 00:00:00 UTC 10h - - dpkg-db-backup.timer dpkg-db-backup.service ##### snipped ##### $ systemctl list-timers --all --state=inactive --no-pager --no-legend - - - - fstrim.timer fstrim.service
On timer units, active generally means the timer is loaded and waiting, while inactive shows a loaded timer that is not currently scheduled to elapse.
$ systemctl status --no-pager --full apt-daily.timer
● apt-daily.timer - Daily apt download activities
Loaded: loaded (/usr/lib/systemd/system/apt-daily.timer; enabled; preset: enabled)
Active: active (waiting) since Mon 2026-04-13 13:35:14 UTC; 17s ago
Trigger: Tue 2026-04-14 04:40:20 UTC; 15h left
Triggers: ● apt-daily.service
Apr 13 13:35:14 server systemd[1]: Started apt-daily.timer - Daily apt download activities.
The Trigger: line is the single-timer equivalent of the NEXT and LEFT columns from list-timers.
$ systemctl show -p NextElapseUSecRealtime -p LastTriggerUSec -p UnitFileState apt-daily.timer NextElapseUSecRealtime=Tue 2026-04-14 04:40:20 UTC LastTriggerUSec= UnitFileState=enabled
An empty LastTriggerUSec= value means the timer has not fired yet in the current manager instance.
$ systemctl list-unit-files --type=timer --no-pager UNIT FILE STATE PRESET apt-daily-upgrade.timer enabled enabled apt-daily.timer enabled enabled dpkg-db-backup.timer enabled enabled e2scrub_all.timer enabled enabled fstrim.timer enabled enabled motd-news.timer enabled enabled systemd-sysupdate-reboot.timer disabled enabled systemd-sysupdate.timer disabled enabled systemd-tmpfiles-clean.timer static - 9 unit files listed.
Use list-unit-files when a timer is installed but missing from list-timers, because only loaded timers appear in the runtime list.
$ systemctl --user list-timers --all --no-pager
User timers live in the per-user manager and can differ completely from the system-wide timer inventory.