Systemd timer – how to get history of when timer triggered

systemdsystemd-timer

systemctl status mytimer.timer

Tells me since when it is active and when the next trigger is due. How can I get a list of when the timer triggered in the past?

Best Answer

List timers, and show journal for the journal/log unit history:

systemctl list-timers
# replace motd-news with mytimer
journalctl -u motd-news.timer

Output:

-- Logs begin at Fri 2018-11-02 13:17:39 CDT, end at Sat 2018-11-03 11:20:59 CDT. --
Nov 02 13:17:52 pop-os systemd[1]: Started Message of the Day.
Nov 02 18:45:46 pop-os systemd[1]: Stopped Message of the Day.
-- Reboot --
Nov 02 18:46:47 pop-os systemd[1]: Started Message of the Day.
-- Reboot --
Nov 03 07:57:27 pop-os systemd[1]: Started Message of the Day.

Some other helpful flags:

  • --since starting time to current
  • --until used with since will get a time range
  • --reverse show newest first
  • --grep grep the message for a pattern

The other flags of interest for getting just the time would be using the --output flag, along with the --output-field flag, f

-o, --output= Controls the formatting of the journal entries that are shown. Takes one of the following options:

   short
       is the default and generates an output that is mostly identical to the formatting of classic syslog files, showing one line
       per journal entry.

   short-full
       is very similar, but shows timestamps in the format the --since= and --until= options accept. Unlike the timestamp information shown in short output mode this mode
       includes weekday, year and timezone information in the output, and is locale-independent.

   short-iso
       is very similar, but shows ISO 8601 wallclock timestamps.

   short-iso-precise
       as for short-iso but includes full microsecond precision.

   short-precise
       is very similar, but shows classic syslog timestamps with full microsecond precision.

   short-monotonic
       is very similar, but shows monotonic timestamps instead of wallclock timestamps.

   short-unix
       is very similar, but shows seconds passed since January 1st 1970 UTC instead of wallclock timestamps ("UNIX time"). The time is
       shown with microsecond accuracy.

   verbose
       shows the full-structured entry items with all fields.

   export
       serializes the journal into a binary (but mostly text-based) stream suitable for backups and network transfer (see
       Journal Export Format[1] for more information). To
       import the binary stream back into native journald format use systemd-journal-remote(8).

   json
       formats entries as JSON data structures, one per line (see Journal JSON Format[2] for more information).

   json-pretty
       formats entries as JSON data structures, but formats them in multiple lines in order to make them more readable by humans.

   json-sse
       formats entries as JSON data structures, but wraps them in a format suitable for Server-Sent Events[3].


  cat
       generates a very terse output, only showing the actual message of each journal entry with no metadata, not even a timestamp.

--output-fields=

       A comma separated list of the fields which should be included in the output. This only has an effect for the output modes which
       would normally show all fields (verbose,
       export, json, json-pretty, and json-sse). The "__CURSOR", "__REALTIME_TIMESTAMP", "__MONOTONIC_TIMESTAMP", and "_BOOT_ID" fields
       are always printed.
Related Question