Titel: an wörsty Beitrag von: Anonymous am 19. Dezember 2003, 12:34:27 hiho du kennst dich ja ziehmlich gut mit bash scripten aus!
also folgendes hab nen script eingebaut sieht so aus #!/bin/sh /bin/echo '--------------------' > $1 /bin/echo '--------------------------------------' >> $1 /bin/echo 'max. connections: %M'>> $1 /bin/echo '--------------------------------------' >> $1 /usr/local/bin/ftpwho >> $1 /bin/echo '--------------------------------------' >> $1 /usr/local/bin/ftpwho -v | grep KB/s >> $1 /bin/echo '--------------------------------------' >> $1 /bin/echo 'used: free: [64]' >> $1 df -h | head -5 | tail -1 | cut -b23-39 >> $1 /bin/echo '--------------------------------------' >> $1 beim ausspucken sieht das so aus 220-----------d-u-m-p---------- -------------------------------------- max. connections: 12 -------------------------------------- standalone FTP daemon [1407], up for 15 hrs 10 min 5796 xx [ 1h33m] ( 78%) xxx 6013 xx [ 1h8m] ( 38%) xx 2127 xx [ 12h5m] ( 79%) xx 6902 xx [ 3m6s] 3m4s idle 6138 xx [58m34s] ( 41%) xx 6638 xxr [23m45s] ( 81%) xx Service class - 6 users -------------------------------------- KB/s: 77.93 KB/s: 88.89 KB/s: 18.01 KB/s: 202.40 KB/s: 192.65 -------------------------------------- used: free: [64] 61G 4.1G 94% jetzt zu meiner frage ich mäöchte gern den speed vor den entsprechenden usern haben zb so KB/s: 77.93 5796 xx [ 1h33m] ( 78%) xxx ... bekomm das nich gebacken kannste mir da weiterhelfen? cui Titel: an wörsty Beitrag von: Wörsty am 19. Dezember 2003, 22:17:22 Scheiße ich raff es nicht. :? :cry:
Ich hasse reguläre Ausdrücke :evil: Eigentlich wollte ich alles bis zum Wort "client:" haben aber ich bin zu blöd :oops: Vielleicht weiß es ja jemand anders. So funktioniert es nämlich nicht, wenn im usernamen ein c vorkommt.... Aber so in etwa :roll: Code: /usr/local/bin/ftpwho -v -ooneline |/bin/sed -e 's/^\( [^c]*\) .*$/\1/' |/bin/grep -v "Service class" |/bin/grep -v "FTP daemon">> $1 Sieht so aus Zitat 6136 woersty.dyndns.org [ 0m20s] (n/a) STOR WWWPRIVAT.zip KB/s: 32.22 6138 woersty.dyndns.org [ 0m11s] 0m11s idle 6140 woersty.dyndns.org [ 0m2s] ( 16%) RETR WWWPRIVAT.zip KB/s: 88.00 6060 woersty.dyndns.org [ 4m6s] 0m24s idle Titel: May it be a light to you in dark places when all other... ;) Beitrag von: Schaka am 21. Dezember 2003, 13:49:38 ... 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 Code: #!/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. |