#!/usr/bin/perl
#### A tool to convert STATUS LOG file reference data
#### into spoolids.
$T = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123abcdefghijklmnopqrstuvwxyz4567890-=';
sub taspoolid {
my ($mtime, $inodenum) = @_;
my (@tt) = gmtime($mtime);
$tt[5] += 1900;
my($sp) =
'S' .
sprintf("%ld", $inodenum) .
substr($T, ($tt[5] >> 12) & 63, 1) . # YEAR
substr($T, ($tt[5] >> 6) & 63, 1) .
substr($T, ($tt[5] ) & 63, 1) .
substr($T, $tt[4], 1) . # MON
substr($T, $tt[3]-1, 1) . # MDAY
substr($T, $tt[2], 1) . # HOUR
substr($T, $tt[1], 1) . # MIN
substr($T, $tt[0], 1); # SEC
return ($sp);
}
while (<>) {
chomp;
if (m/^S/o) { printf "%s\n", $_; next; }
@l = split(' ',$_);
$m = shift @l;
$i = shift @l;
printf("%s %s\n", taspoolid($m, $i+0), join(' ',@l));
}
1;
syntax highlighted by Code2HTML, v. 0.9.1