use Data::Dumper;
sub XXX { $DEBUG ? warn "XXX ",Dumper( @_ ) : {} };
+my $stat;
+my $mac_to_name;
+my $lines;
+
+next_argv:
my $ssh = '';
if ( @ARGV ) {
- $hostname = $ARGV[0];
+ $hostname = shift @ARGV;
$ssh = "ssh $hostname ";
}
sub ps_cols_all { map { my $t = $_; $t =~ s/^_//; $t } @ps_cols };
sub ps_cols_visible { grep { ! /^_/ } @ps_cols };
-my $stat;
-my $mac_to_name;
-
sub DD_hh_mm_ss {
my $t = shift;
# [[DD-]hh:]mm:ss.
return $t_sec;
}
-my $cmd = 'ps --no-headers axwwo ' . join(',', ps_cols_all);
+my $cmd = $ssh . 'ps --no-headers axwwo ' . join(',', ps_cols_all);
warn "## $cmd\n";
-open(my $ps, '-|', $ssh . $cmd);
+open(my $ps, '-|', $cmd);
while(<$ps>) {
chomp;
s/^\s*//;
}
-warn '# mac_to_name ', Dumper( $mac_to_name );
-
open(my $ip, '-|', $ssh . 'ip -s -o link');
while(<$ip>) {
chomp;
}
}
+goto next_argv if @ARGV;
+
warn "# stat ", Dumper( $stat ) if $DEBUG;
XXX( @ps_cols );
-my $lines;
sub push_line {
my @l = @_;
foreach my $i ( 0 .. $#l ) {
push_line( $name, map { $stat->{$name}->{$_} } ps_cols_visible );
}
+warn '# mac_to_name ', Dumper( $mac_to_name );
+
XXX $lines;
my $fmt = join(' ', map { '%' . $_ . 's' } @{ $lines->{len} } ) . "\n";
foreach my $line ( @{ $lines->{line} } ) {
printf $fmt, @$line;
}
+