It is very easy to tell how long the system has been running using uptime
command, but the information when exactly it was booted is not so apparent, so I will show you two different ways to get it.
The first way – the simplest one
Use last
command to display the system shutdown entries and run level changes, limit output to the boot
entries, and display only the first one.
$ last -x | grep boot | head -1 reboot system boot 3.2.0-4-amd64 Sat Oct 19 12:44 - 23:24 (8+11:40)
Sat Oct 19 12:44
, current time is 23:24
, and the uptime is 8 days, 11 hours, and 40 minutes
.The following examples demonstrate two simple ways to print the time when the system was booted, each one using different sets of commands.
$ last -x | awk '$3 ~ /boot/ {print $5 " " $6 " " $7 " " $8; exit}' Sat Oct 19 12:44
$ last -x | grep -m 1 boot | tr -s ' ' | cut -d ' ' -f 5-8 Sat Oct 19 12:44
The second way – the more interesting one
Alternative solution is to read the /proc/uptime
file, where the first number is the total number of seconds the system has been up and running.
$ cat /proc/uptime 735751.39 778420.68
735751
seconds which equals to 8 days, 12 hours, 22 minutes
.You can accurately determine when the system was booted using date
command.
$ date --date "now - `cut -d ' ' -f 1 /proc/uptime` seconds" Sat Oct 19 12:43:25 CEST 2013
The above-mentioned command construction shortly explains why I think that this solution is more interesting.