Find The Last System Shut
Down Time
How to find the last system shutdown time?
Ans:
If you just need last shutdown; try using the command:
Code:
uptime
You can do some calculation with curent date-time to
get the exact shutdown date.
Note:
There might be few hours difference; as shutdown time
and uptime would not be same; this difference of hours would be system
downtime. This may result in date change also, if shutdown occured
around midnight or system downtime was fairly large.
Example 1:
uptime command would give the output in following format:
Quote:
01:40AM up X days, 9:33, 3 users ...
You would need to subtract X days from current date to
get the last reboot date.
Alternatively, You can use the following command to determine
last reboot time, with year.
Code:
errpt -aj 2BFA76F6
2BFA76F6: happens to be an identifier for SYSTEM SHUTDOWN
in AIX, and can be obtained using:
Code:
errpt | grep SHUT
Example 2:
Code:
trogdor ~ $ last -1x shutdown
shutdown system down 2.6.34.7-66.fc13 Sat Jan
8 20:20 - 20:29 (00:09)
wtmp begins Sun Aug 29 06:30:04 2010
Gives you the time of the last shutdown.
But:
Code:
trogdor ~ $ last -1x reboot
reboot system boot 2.6.34.7-66.fc13
Sat Jan 8 20:29 - 10:18 (7+13:49)
wtmp begins Sun Aug 29 06:30:04 2010
Shows the time of the last (re)boot, which corresponds
to what is shown by uptime:
Code:
trogdor ~ $ uptime
10:18:41 up 7 days, 13:49, 6 users,
load average: 0.03, 0.09, 0.08
You can use awk, sed, perl, and numerous other tools to
extract and format the date and time of the last reboot to your liking.
Please note that the year is not displayed.
You can parse /var/log/wtmp to get what you need. For
instance, using the examples in Formatting and Printing Wtmp as a starting
point:
Code:
#! /usr/bin/perl
use strict;
use warnings;
use POSIX qw{ strftime };
undef $/;
$\ = "\n";
$, = '';
my $reclen = 384; # sizeof (struct utmp)
my $linesize = 32; # value of UT_LINESIZE in /usr/include/bits/utmp.h
my $namesize = 32; # value of UT_NAMESIZE in /usr/include/bits/utmp.h
my $hostsize = 256; # value of UT_HOSTSIZE in /usr/include/bits/utmp.h
my $wtmpfile = '/var/log/wtmp';
my $entry_template = "(a$reclen)*";
my $utmp_template = "I x4 x$linesize x4 x$namesize
x$hostsize x4 x4 I";
my @UT_TYPE = qw{ Empty RunLvl Boot NewTime OldTime
Init Login Normal Term Account };
open FH, '<', $wtmpfile or die $wtmpfile;
my $boot = undef;
foreach my $entry (unpack $entry_template, <FH>) {
my ($type, $when) = unpack $utmp_template,
$entry;
$boot = $when if $UT_TYPE[$type] eq
'Boot';
}
close FH;
print strftime '%Y-%m-%d %H:%M:%S %Z', localtime $boot
if defined $boot;
Will give you the time of the reboot:
Code:
trogdor ~ $ lastboot
2011-01-08 20:29:54 EST
Have a Linux Problem
Linux Forum
- Do you have a Linux Question?
Linux Books
Linux Certification,
System Administration, Programming, Networking Books
Linux Home: Linux
System Administration Hints and Tips
(c) www.gotothings.com All material on this site is Copyright.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
All product names are trademarks of their respective
companies.
The site www.gotothings.com is in no way affiliated with
or endorsed by any company listed at this site.
Any unauthorised copying or mirroring is prohibited.
|