... in der hoffnung, dass mein entwickeltes PERL-Script (!) allen gefällt, die ftptop, ftpwho bzw. ps zu unaussagekräftig finden und sich eine mischung aus allen drei wünschen...
angezeigt werden: operation, pfad & datei, ip & host, user & passwort, pid, insgesamt auf dem ftp verbrachte zeit, prozent, speed
#!/usr/bin/perl
print "\n";
open PS, "/bin/ps aux | awk /^.*p[r]of.*-.*\$/ |";
while(<PS>) {
($uid,$pid,$foo,$foo,$foo,$foo,$foo,$foo,$foo,$foo,$foo,$foo,$foo,$host,$user,$operation,$file) = split(/\s+/, $_);
($foo,$user,$foo) = split(/\/|:/, $user);
$host =~ s/://;
if ($file) { $file = "\/$file"; }
$ftp = `ftpwho -v | grep -A 4 $pid`;
($first, $rate, $ip, $foo, $location, $foo) = split(/\n/, $ftp);
$first =~ /\[(.*)\]/;
$zeit = $1;
$zeit =~ s/^\s*//g;
$first =~ /\((.*)\)/;
$prozent = $1;
$prozent =~ s/^\s*//g;
$rate =~ s/^\s*//;
if (substr($rate, 0, 2) ne "KB") {
($first, $ip, $foo, $location, $foo) = split(/\n/, $ftp);
$rate = "0";
}
else {
$rate =~ s/KB\/s:\s//;
}
$ip =~ /\[(.*)\]/;
$ip = $1;
$location =~ s/^\s*location:\s//;
print "$pid\t$uid\t$user\t$zeit\t$rate kB\/sek\t$ip\t$host\n$prozent\t$operation $location$file\n\n";
}
close PS;
##ENDE
PS: der user, der das script ausführen möchte, braucht nen 'x' (also ans chmod denken)... und muss ps aux, ftptop und ftpwho ausführen dürfen.