Measure system runtime with tuptime Stopwatch

More Details

If you append the -k parameter to the call, tuptime will tell you the kernel version used at each startup; if you add the -b option, it will also provide the unique identification numbers of the individual boot processes (Figure 3). The parameter -p tells tuptime to show you how long the system slept in each case following Sleeping. Similarly, the active time follows Running. These values are only available on systems that have Python 3.6 or higher in place.

Figure 3: Here the system used the same Linux kernel for both system starts. After the first start, it ran for 35 minutes without going to sleep.

This will determine the longest uptime so far and display as a table:

$ tuptime -t -o u -r | head -3

The system has never run longer than the Uptime displayed here. To find out when this was, just check in the Date column. The command first outputs the information as a table (-t), which the -o parameter sorts by uptime (u). The -r switch reverses the sort order so that the longest uptime is at the top of the table. head -3 limits the output to the first three lines, leaving only the longest uptime.

To get the shortest uptime, just omit -r. Similarly, you can output the longest and shortest downtime by using the d option instead of u. Older tuptime versions still output the longest and shortest uptimes, as well as the longest and shortest downtimes, by default along with the information from Figure 1. For tuptime version 5 and newer, you have to query this information yourself with the commands mentioned above.

A Question of Format

If so desired, tuptime -csv will deliver all the information in CSV format. If you append a -t, you are given a table that you can redirect to a file and then open with a spreadsheet program.

If you don't like the date and time format in the output, you can change it using

$ tuptime -d '%H:%M:%S %m-%d-%Y'

Tuptime replaces the placeholders beginning with a % with the corresponding values. %H stands for the hours, %M for the minutes, %S for the seconds. Similarly, %m returns the month as a number, %d the day, and %Y the year. Details of other placeholders are explained in the tuptime documentation, which you will find on GitHub in the tuptime-manual.txt file [1].


If you just want to quickly find out how much time has passed since the last system start, you can call uptime, which is likely to be preinstalled on your system. Installing tuptime makes particular sense on servers and SBCs like the Raspberry Pi running in headless mode. Tuptime can then monitor the startup process and reveal the details of, for example, overly frequent reboots or excessively short sleep cycles.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Introduction

    This month in Linux Voice.

  • Charly's Column

    Who has the longest uptime? Linux systems used to win hands down when it comes to maximum uptime without rebooting. Today, uptime statistics help admins with monitoring tasks and discovering tricky bugs.

  • Fabric Python Library

    The Fabric Python library makes it extremely easy to create repeatable scripts of commands over SSH to any number of servers.

  • Script Dialogs

    Starting a script on a Linux server with just a few mouse clicks sounds more complicated than it really is. If you want to create attractive and interactive dialogs for your desktop users, all you need is a small utility called SSH and a little Bash know-how.

  • KSplice

    Uptime is often just as important as updates. But doesn't a kernel patch require a reboot? Ksplice lets you have your cake and eat it too.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More