|
|
|
|
scriptecke |
Black Star
Der Pate [Admin]
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
Themenstarter
|
|
|
|
jetzt kommt ein längeres
was wichtiges zu perl:
ihr könnt neue libs online installieren!
gebt ein: # perl -MCPAN -e shell
dann geht ein client auf. dort gebt iher ein: cpan> install Name::class
und danach quit oder q
als beispiel: cpan> install CGI::Lite
genauso bei dem speedometer-script hier:
cpan> install Time::HiRes
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
|
#!/usr/bin/perl
#
# speedometer - print interface speed with dx/dt - 2002 by Black Star
#
#
# structure of /proc/net/dev:
# #0: jadajada
# #1: jadajada
# #2: name:bytes_in xxx xxx xxx xxx xxx xxx xxx bytes_out xxx xxx xxx xxx xxx xxx xxx
# # ...... up to 5 ifaces
#
# the interesting numbers are at position 2 (recive) and 10 (transmit)
#
#$debug=1;
use Time::HiRes;
$time = 3; # dt
print "\nSpeedometer - 2002 by Black Star\n\n";
print "listen to interfaces....";
# load interfaces
$dev = "/proc/net/dev";
open(DEV, "$dev");
if ( -e DEV ) { print " found process..."; } else { print "network is down"; last; }
@dev = <DEV>;
# look for ifaces
foreach $line (@dev) {
if ( $line =~ /:/ ) {
@temp = split(/:/, $line);
$temp[0] =~ s/ //g; #delete spaces
push(@ifaces, $temp[0]);
}
}
if (@ifaces) { print " found interfaces:"; } else { print " none or bad interfaces"; last; }
foreach $iface (@ifaces) { print " $iface"; }
close(DEV);
print "\n\nstarting speedometer listening to /proc/net/dev, waiting $time seconds and listen again. To break out hit Ctrl-C\n\n";
while (1==1) { # repeat until kill from outside
print "listen to interfaces....\n";
my @up1;
my @down1;
my @up2;
my @down2;
$starttime = [Time::HiRes::gettimeofday];
open(DEV, "$dev"); @dev = <DEV>;
foreach $line (@dev) { # get load of all ifaces
if ( $line =~ /:/ ) {
$line =~ s/( )+/ /g;
@temp = split(/[: ]/, $line);
foreach $temp (@temp) { $temp =~ s/ //g; }
if ( $debug > 1 ) { foreach $temp1 (@temp) { print "$temp|" } print "\n"; }
push(@up1, $temp[10]);
push(@down1, $temp[2]);
}
}
close(DEV);
#----wait dt
sleep($time);
$stoptime = [Time::HiRes::gettimeofday];
open(DEV, "$dev"); @dev = <DEV>;
foreach $line (@dev) { # get load of all ifaces
if ( $line =~ /:/ ) {
$line =~ s/( )+/ /g;
@temp = split(/[: ]/, $line);
foreach $temp (@temp) { $temp =~ s/ //g; }
if ( $debug > 1 ) { foreach $temp (@temp) { print "$temp|" } print "\n"; }
push(@up2, $temp[10]);
push(@down2, $temp[2]);
}
}
close(DEV);
$elapsed = Time::HiRes::tv_interval($starttime, $stoptime);
# calculate d/dt
foreach $iface (@ifaces) {
$up2 = shift(@up2);
$up1 = shift(@up1);
$down2 = shift(@down2);
$down1 = shift(@down1);
if ( $debug ) {
print "$iface | $up2 | $up1 | $down2 | $down1\n";
} else {
$load_up_bytes = ($up2 - $up1) / $elapsed; $load_up_kbytes = $load_up_bytes / 1024;
$load_down_bytes = ($down2 - $down1) / $elapsed; $load_down_kbytes = $load_down_bytes / 1024;
# delete fuckin point numbers
$load_up_bytes =~ s/\.[0-9]+//; $load_up_kbytes =~ s/\.[0-9]+//;
$load_down_bytes =~ s/\.[0-9]+//; $load_down_kbytes =~ s/\.[0-9]+//;
print "$iface\tup = $load_up_bytes bps\tdown = $load_down_bytes bps\t ||\t up = $load_up_kbytes kbps\t down = $load_down_kbytes kbps\n
}
}
}
print "\n\nexit code ok...\n\n";
|
|
__________________
vescere bracis meis
|
|
06.06.2002 21:38 |
|
|
Black Star
Der Pate [Admin]
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
Themenstarter
|
|
|
|
das interesse an scrippten scheint hier nicht so hoch zu sein.
ich hab aber noch eins
dieses script checkt über smbutils alle windows-shares im netzwerk.
d.h. ihr könnt alle freigaben auf einmal sehen.
smbshare.pl
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
|
#!/usr/bin/perl -wT
#
# Copyright (C) 1999,2000 Markus Wiesner (markus@wiesner-net.de)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# In welchem Verzeichnis befinden sich "nmblookup" und "smbclient"?
$BINDIR="/usr/bin";
# 1 = Rechner ueber Broadcasts finden
# 2 = Rechner ueber die Liste der Masterbrowser finden
# Die 2. Methode ist vorzuziehen, da sie schneller ist, weniger Traffic verursacht und auch
# in gerouteten Netzen mit WINS Server funktionieren sollte
$LOOKUP_METHOD="2";
####################################################################
### ab hier braucht (hoffentlich ;) ) nix mehr geaendert werden ###
sub prepare_env {
use Time::localtime;
delete $ENV{PATH};
}
sub set_globals {
@SERVER = ();
# Suche alle "local master"
chomp(@MASTER_LIST=`$BINDIR/nmblookup -M -`);
}
prepare_env;
set_globals;
foreach $MASTER_LINE (@MASTER_LIST) {
if ($MASTER_LINE =~ /^(\d+\.\d+\.\d+\.\d+)\s+..__MSBROWSE__..*$/) {
chomp(@NODESTAT=`$BINDIR/nmblookup -A "$1"`);
if ("$LOOKUP_METHOD" eq "1") {
# ermittle die Arbeitsgruppe des "local master"
$GROUP="";
foreach $NBNAME (@NODESTAT) {
if ($NBNAME =~ /^\s+(.*?)\s+\<1e\>\ \-\ \<GROUP\>.*$/) {
$GROUP="$1";
last;
}
}
if ("$GROUP" ne "") {
# finde alle Rechner, die derselben Arbeitsgruppe angehoeren
chomp(@HOSTLIST=`$BINDIR/nmblookup "$GROUP"`);
foreach $HOST (@HOSTLIST) {
if ($HOST =~ /^(\d+\.\d+\.\d+\.\d+)\s+$GROUP.*$/) {
# ermittle die NetBIOS-Namen der gefundenen Rechner
chomp(@NODESTAT=`$BINDIR/nmblookup -A "$1"`);
foreach $NBNAME (@NODESTAT) {
if ($NBNAME =~ /^\s+(.*?)\s+\<20\>\ \-\ \s+.*$/) {
push (@SERVER, "$1"); # NetBIOS-Name endlich gefunden :)
last;
}
}
}
}
}
} else {
# ermittle den NetBIOS-Namen des "local master"
$HOST="";
foreach $NBNAME (@NODESTAT) {
if ($NBNAME =~ /^\s+(.*?)\s+\<20\>\ \-\ \s+.*$/) {
$HOST="$1";
last;
}
}
if ("$HOST" ne "") {
# hole die Liste der Rechner in der Arbeitsgruppe des Masterbrowser
chomp(@SHARELIST = `$BINDIR/smbclient -L "$HOST" -N -R wins,bcast`);
$pos=0;
foreach $SHARE (@SHARELIST) {
if ("$pos" eq "0") {
if ("$SHARE" eq "\tServer Comment") { $pos=1; } # Beginn der Serverliste gefunden
} elsif ("$pos" eq "1") {
if ("$SHARE" eq "\t--------- -------") { $pos=2; } # Unterstreichung der Serverliste gefunden
} elsif ("$pos" eq "2") {
if ("$SHARE" eq "") { last; } # Ende der Serverlist
if ($SHARE =~ /^\s+(.{15})\s+.*$/) {
# Name gefunden ... ist nur etwas schwierig vom Kommentar zu trennen,
# da im Namen (max. 15 Zeichen) auch Leerzeichen vorkommen koennen :(
$TMP="$1";
$TMP =~ /^(.*?)\s*$/;
push (@SERVER, "$1");
}
}
}
}
}
}
}
if (@SERVER == 0) {
print "Keine Rechner gefunden :-(\n";
exit;
}
print "Habe ", scalar(@SERVER), " Rechner gefunden:\n";
foreach $HOST (@SERVER) {
print "- "$HOST"\n";
}
print "\n";
foreach $HOST (@SERVER) {
print "Shares auf $HOST:\n";
chomp(@SHARELIST=`$BINDIR/smbclient -L "$HOST" -N -R wins,bcast`);
foreach $SHARE (@SHARELIST) {
if ($SHARE =~ /^\s+(.*?)\s+Disk\s+.*$/) {
print "- $1\n";
}
}
} |
|
cu - black star8)
__________________
vescere bracis meis
|
|
19.06.2002 23:05 |
|
|
cyb
Aufsteiger
Dabei seit: 08.06.2002
Beiträge: 27
Herkunft: Subraum
|
|
hallo, interesse wäre bestimmt da!!! aber nicht jeder weis wie man diese scripte benutzt, von windows her kenne ich batch dateien wo man scripte ablaufen läßt aber wie man mit einen perl und vor allem unter linux umgeht wissen bestimmt nicht sehr viele und ich schon garned!!! aber ich lerne gern dazu
gruß cyb
__________________ und aus dem chaos sprach eine stimme, lächle und sei froh,es könnte schlimmer kommen...ich lächelte und war froh...und es kam sehr viel schlimmer ;-))!!!
|
|
20.06.2002 19:34 |
|
|
Black Star
Der Pate [Admin]
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
Themenstarter
|
|
|
20.06.2002 19:53 |
|
|
gandalf
der mit ohne
Dabei seit: 06.01.2002
Beiträge: 2.099
Herkunft: Mittelerde
|
|
Kriegen tust Du es von SuSE selbst oder sonst
www.linuxiso.org
und ich persönlich finde es gut. Für die die es gerne grafisch haben, die können alles grafisch konfigurieren und die anderen können editieren.
Und man findet jede Menge Material dazu im Netz.
Gruss
gandalf
__________________
Kein Mensch ist unnütz, er kann immer noch als schlechtes Vorbild dienen
|
|
21.06.2002 16:04 |
|
|
cyb
Aufsteiger
Dabei seit: 08.06.2002
Beiträge: 27
Herkunft: Subraum
|
|
hallo blackstar, hab jetzt mal vor mit wsh anzufangen aber ich glaub zum coden bin ich nicht gebohren! kannst du mir sagen wo ich gut deutsche tuts bekomme egal ob SHELL, VBS???
gruß cyb
__________________ und aus dem chaos sprach eine stimme, lächle und sei froh,es könnte schlimmer kommen...ich lächelte und war froh...und es kam sehr viel schlimmer ;-))!!!
|
|
21.06.2002 23:11 |
|
|
gandalf
der mit ohne
Dabei seit: 06.01.2002
Beiträge: 2.099
Herkunft: Mittelerde
|
|
@ FaKe$lAsH
Wenn ich mich richtig erinnere bist Du ja noch Schüler, SuSE verkauft ja die Software auch und für Schüler gibt es das ganze ja mit speziellem Rabatt, und der ist glaube ich ziemlich grosszügig. Da stellt sich doch die Frage ob Du es nicht kaufen willst, dann hättest Du auch gleich die Handbücher dabei.
Gruss
gandalf
__________________
Kein Mensch ist unnütz, er kann immer noch als schlechtes Vorbild dienen
|
|
22.06.2002 01:12 |
|
|
Andy
BlackBoarder
Dabei seit: 21.10.2001
Beiträge: 576
|
|
|
29.06.2002 05:09 |
|
|
|
|
|
|