58 lines
1.3 KiB
Perl
58 lines
1.3 KiB
Perl
#!/usr/bin/perl -P
|
|
|
|
# $Header: /home/cvs/386BSD/ports/lang/perl/eg/scan/scan_last,v 1.1.1.1 1993/08/23 21:29:45 nate Exp $
|
|
|
|
# This reports who was logged on at weird hours
|
|
|
|
($dy, $mo, $lastdt) = split(/ +/,`date`);
|
|
|
|
open(Last, 'exec last 2>&1 |') || die "scan_last: can't run last";
|
|
|
|
while (<Last>) {
|
|
#if defined(mc300) || defined(mc500) || defined(mc700)
|
|
$_ = substr($_,0,19) . substr($_,23,100);
|
|
#endif
|
|
next if /^$/;
|
|
(print),next if m|^/|;
|
|
$login = substr($_,0,8);
|
|
$tty = substr($_,10,7);
|
|
$from = substr($_,19,15);
|
|
$day = substr($_,36,3);
|
|
$mo = substr($_,40,3);
|
|
$dt = substr($_,44,2);
|
|
$hr = substr($_,47,2);
|
|
$min = substr($_,50,2);
|
|
$dash = substr($_,53,1);
|
|
$tohr = substr($_,55,2);
|
|
$tomin = substr($_,58,2);
|
|
$durhr = substr($_,63,2);
|
|
$durmin = substr($_,66,2);
|
|
|
|
next unless $hr;
|
|
next if $login eq 'reboot ';
|
|
next if $login eq 'shutdown';
|
|
|
|
if ($dt != $lastdt) {
|
|
if ($lastdt < $dt) {
|
|
$seen += $dt - $lastdt;
|
|
}
|
|
else {
|
|
$seen++;
|
|
}
|
|
$lastdt = $dt;
|
|
}
|
|
|
|
$inat = $hr + $min / 60;
|
|
if ($tohr =~ /^[a-z]/) {
|
|
$outat = 12; # something innocuous
|
|
} else {
|
|
$outat = $tohr + $tomin / 60;
|
|
}
|
|
|
|
last if $seen + ($inat < 8) > 1;
|
|
|
|
if ($inat < 5 || $inat > 21 || $outat < 6 || $outat > 23) {
|
|
print;
|
|
}
|
|
}
|