Linux See Historical and Statistical Uptime of System With tuptime

You can use the following tools to see how long system has been running on a Linux or Unix-like system:

ADVERTISEMENTS

Finding out the system last reboot time and date

You can use the following commands to get the last reboot and shutdown time and date on a Linux operating system (also works on OSX/Unix-like system):

## Just show  system reboot and shutdown date and time ###
who -b
last reboot
last shutdown
## Uptime info ##
uptime
cat /proc/uptime
awk '{ print "up " $1 /60 " minutes"}' /proc/uptime 
w

Sample outputs:

Fig.01: Various Linux commands in action to find out the server uptime

Fig.01: Various Linux commands in action to find out the server uptime

Say hello to tuptime

The tuptime command line tool can report the following information on a Linux and FreeBSD based system:

  1. Count system startups
  2. Register first boot time (a.k.a. installation time)
  3. Count nicely and accidentally shutdowns
  4. Average uptime and downtime
  5. Current uptime
  6. Uptime and downtime rate since first boot time
  7. Accumulated system uptime, downtime and total
  8. Report each startup, uptime, shutdown and downtime

Installation

Type the following command to clone a git repo on a Linux operating system:
$ cd /tmp
$ git clone https://github.com/rfrail3/tuptime.git
$ ls
$ cd tuptime
$ ls

Sample outputs:

Fig.02: Cloning a git repo

Fig.02: Cloning a git repo

Make sure you’ve Python v2.7/3.x installed with sys, optparse, os, re, string, sqlite3, datetime, disutils, and locale modules. You can simply install it as follows:
$ sudo tuptime-install.sh

How to do a manual installation

Copy the “tuptime” file located under “latest/” directory to “/usr/bin/” using cp command and make it executable using the chmod command:
sudo cp -v /tmp/tuptime/src/tuptime /usr/bin/tuptime
sudo chmod ugo+x /usr/bin/tuptime

Make sure you have Python version 3.x installed and working correctly:
python3 --version
Sample outputs:

Python 3.7.3

Package installation for Linux and FreeBSD

Debian or Ubuntu Linux user (), run apt command/apt-get command:
sudo apt update
sudo apt install tuptime

Arch Linux user run pacman command:
sudo pacman -S pkgfile

A note about FreeBSD users

FreeBSD Unix users try the pkg command to install the same:
sudo pkg install tuptime

Linux See Historical and Statistical Uptime of System With tuptime

FreeBSD installation in action

Another option for FreeBSD is to install the port as follows:
cd /usr/ports/sysutils/tuptime/ && make install clean
tuptime requires execution at startup and shutdown on rc.d on FreeBSD, so add to /etc/rc.conf:
tuptime_enable="YES"
Finally, tuptime requires a scheduled execution on cron, therefore run crontab -e:
# crontab -e
Append the following line :
*/5 * * * * root /usr/local/bin/tuptime -x > /dev/null
Save and close the file. Start the service on FreeBSD:
# service tuptime start

Run it

Simply type the following command:
$ sudo tuptime
Sample outputs:

Fig.03: tuptime in action

Fig.03: tuptime in action

After kernel upgrade I rebooted the box and typed the same command again:

$ sudo tuptime
System startups:	2   since   03:52:16 PM 08/21/2015
System shutdowns:	1 ok   -   0 bad
Average uptime: 	7 days, 16 hours, 48 minutes and 3 seconds
Average downtime: 	2 hours, 30 minutes and 5 seconds
Current uptime: 	5 minutes and 28 seconds   since   06:23:06 AM 09/06/2015
Uptime rate: 		98.66 %
Downtime rate: 		1.34 %
System uptime: 		15 days, 9 hours, 36 minutes and 7 seconds
System downtime: 	5 hours, 0 minutes and 11 seconds
System life: 		15 days, 14 hours, 36 minutes and 18 seconds

You can change date and time format as follows:
$ sudo tuptime -d '%H:%M:%S %m-%d-%Y'
Sample outputs:

System startups:	1   since   15:52:16 08-21-2015
System shutdowns:	0 ok   -   0 bad
Average uptime: 	15 days, 9 hours, 21 minutes and 19 seconds
Average downtime: 	0 seconds
Current uptime: 	15 days, 9 hours, 21 minutes and 19 seconds   since   15:52:16 08-21-2015
Uptime rate: 		100.0 %
Downtime rate: 		0.0 %
System uptime: 		15 days, 9 hours, 21 minutes and 19 seconds
System downtime: 	0 seconds
System life: 		15 days, 9 hours, 21 minutes and 19 seconds

Enumerate each startup, uptime, shutdown and downtime:
$ sudo tuptime -e
Sample outputs:

Startup:  1  at  03:52:16 PM 08/21/2015
Uptime:   15 days, 9 hours, 22 minutes and 33 seconds
 
System startups:	1   since   03:52:16 PM 08/21/2015
System shutdowns:	0 ok   -   0 bad
Average uptime: 	15 days, 9 hours, 22 minutes and 33 seconds
Average downtime: 	0 seconds
Current uptime: 	15 days, 9 hours, 22 minutes and 33 seconds   since   03:52:16 PM 08/21/2015
Uptime rate: 		100.0 %
Downtime rate: 		0.0 %
System uptime: 		15 days, 9 hours, 22 minutes and 33 seconds
System downtime: 	0 seconds
System life: 		15 days, 9 hours, 22 minutes and 33 seconds
Conclusion

The uptime command show how long system has been up, and w command shows who is logged in and what they are doing. However, tuptime tool is an exciting tool to report the historical and statistical real time of the system, keeping it between restarts. It is just like uptime command but with more appealing output.

This entry is 1 of 2 in the Linux uptime series. Keep reading the rest of the series:
  1. Report the historical and statistical running time of Linux system
  2. How to records statistics about a Linux machine's uptime
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
2 comments… add one
  • Trey Blancher Sep 7, 2015 @ 0:59

    There’s absolutely no reason to run it as root, or with sudo. I simply made /var/lib/tuptime writable by my local, non-root user, and tuptime runs just fine.

    Oh, yeah, if you run Arch, in the install script `python –version…` returns 3.4 currently, you’ll want to change that to `python2 –version`.

  • Harey Bloom May 11, 2017 @ 14:59

    Actually in Debian it runs as a unprivileged user with python3. The table output is very helpfull.

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.