#!/usr/local/bin/perl -w #-*-perl-*- # use strict; use vars qw ( @WhoList ); use Win32; use Win32::NetAdmin; use Date::Calc qw( Delta_DHMS ); my ($VERSION) = '$Revision: 1.0 $' =~ /([.\d]+)/; my $warnings = 0; # Print a usuage message on a unknown option. $SIG {__WARN__} = sub { if (substr ($_ [0], 0, 14) eq "Unknown option") {die "Usage"}; require File::Basename; $0 = File::Basename::basename ($0); $warnings = 1; warn "$0: @_"; }; $SIG {__DIE__} = sub { require File::Basename; $0 = File::Basename::basename ($0); if (substr ($_ [0], 0, 5) eq "Usage") { die <<EOF; $0 (NT Perl bin utils) $VERSION $0 [ -h ] EOF } die "$0: @_"; }; die "Usage" if $ARGV[0]; my $Server = ""; my @Month = ( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ); Win32::NetAdmin::LoggedOnUsers ( $Server, \@WhoList ) or die "$^E\n"; my $Reboot = time - ( Win32::GetTickCount() / 1000 ); my @Neht = localtime ( $Reboot ); my @Won = localtime ( time ); $#Neht = 5; my @Then = reverse @Neht; $#Won = 5; my @Now = reverse @Won; my @Diff = Delta_DHMS ( @Then, @Now ); my $UserPlural = "user"; $UserPlural = $UserPlural . "s" if $#WhoList > 0; printf " %2d:%2d up %d days, %2d:%2d, %2d %s\n", $Now[3], $Now[4], +$Diff[0], $Diff[1], $Diff[2], $#WhoList + 1, $UserPlural; =pod =head1 NAME B<uptime> - show how long the system has been up =head1 SYNOPSIS B<uptime> [ -h ] =head1 DESCRIPTION The B<uptime> command prints the current time, the length of time the +system has been up, and the number of users logged on. =head2 OPTIONS The following options are supported: =over 4 =item -h Display syntax. =back =head1 EXAMPLE Below is an example of the output B<uptime> provides: C:\> uptime 10:10 up 0 days, 18:40, 2 users =head1 ENVIRONMENT The working of B<uptime> is not influenced by any environment variable +s. =head1 BUGS B<uptime> returns an approximate uptime. It uses the Win32::GetTickCo +unt() function, an imprecise mechanism. A better way to derrive the +last boot is to query the event log for the most recent 6005 or 6009 +event and grab that time. If log files are large, this can be time c +onsuming. If you need this kind of resolution, use B<who -b>. B<printf> does not seem to want to pad numbers with '0's. =head1 STANDARDS It does not make sense to talk about standards in a B<uptime> manual p +age. =head1 REVISION HISTORY uptime Revision 1.0 2000/06/22 10:05:57 idnopheq Initial revision =head1 AUTHOR The Perl implementation of B<uptime> was written by Dexter Coffin, I<i +dnopheq@home.com>. =head1 COPYRIGHT and LICENSE This program is copyright by Dexter Coffin 2000. This program is free and open software. You may use, copy, modify, dis +tribute, and sell this program (and any modified variants) in any way you wish, provided you do not restrict others from doing the same. =head1 SEE ALSO =for html <a href="who.html">who</a><p> =head1 NEXT TOPIC =cut

In reply to uptime for NT/2K by idnopheq

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.