meinereinerseiner
24-07-2003, 17:29
hi,
ich suche eine möglichkeit via lcdproc die aktuelle ip angezeigt zu bekommen
dazu hab im inet mal folgendes script gefunden:
#!/usr/bin/perl -w
use IO::Socket;
use Fcntl;
use strict;
# Connect to the server...
my $remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "localhost",
PeerPort => "13666")
|| die "Cannot connect to LCDproc port\n";
# Make sure our messages get there right away
$remote->autoflush(1);
# Give server plenty of time to notice us...
sleep 1;
print $remote "hello\n";
my $lcdconnect = <$remote>;
print $lcdconnect;
# Turn off blocking mode...
fcntl($remote, F_SETFL, O_NONBLOCK);
# Set up some screen widgets...
print $remote "client_set name {datafile}\n";
print $remote "screen_add data\n";
print $remote "screen_set data name {Akt. Content}\n";
print $remote "widget_add data title title\n";
print $remote "widget_set data title {Akt. Content}\n";
print $remote "widget_add data one string\n";
print $remote "widget_add data two string\n";
print $remote "widget_add data three string\n";
while(1)
{
my $content = `ps ax | grep apache | wc -l` - 1 ;
print $remote "widget_set data one 1 2 {datafile Content: }\n";
print $remote "widget_set data two 1 3 { $content }\n";
print $remote "widget_set data three 5 4 {just for fun !}\n";
sleep 1;
}
close ($remote) || die "close: $!";
exit;
das skript ohne änderungen geht prima
nun dacht ich ich änders mal so wie ichs brauche:
1. wenn ich my $content z.b. nur ein einfaches `echo "plepps"` angebe wird schon
in der 2 zeile nichts mehr angezeigt, was mache ich da falsch?
nehme ich : my $content = "hallo welt" ; dann zeigt er es an
my $content = `echo "hallo welt"`; geht z.b. nicht
wo ist denn der unterschied zwischen:
my $content = `ps ax | grep apache | wc -l` - 1 ;
und:
my $content = `echo "hallo welt"`; bzw.
my $content = `/sbin/ifconfig ppp0 | grep "inet Adresse"| awk '{ print $2}' |awk -F: '{print $2}'` ;
2. wie erreiche ich, das die while schleife nur alle 10 sekunden durchlaufen wird?
währe nett wenn ihr da ein paar tips hättet
danke
der tom
ich suche eine möglichkeit via lcdproc die aktuelle ip angezeigt zu bekommen
dazu hab im inet mal folgendes script gefunden:
#!/usr/bin/perl -w
use IO::Socket;
use Fcntl;
use strict;
# Connect to the server...
my $remote = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => "localhost",
PeerPort => "13666")
|| die "Cannot connect to LCDproc port\n";
# Make sure our messages get there right away
$remote->autoflush(1);
# Give server plenty of time to notice us...
sleep 1;
print $remote "hello\n";
my $lcdconnect = <$remote>;
print $lcdconnect;
# Turn off blocking mode...
fcntl($remote, F_SETFL, O_NONBLOCK);
# Set up some screen widgets...
print $remote "client_set name {datafile}\n";
print $remote "screen_add data\n";
print $remote "screen_set data name {Akt. Content}\n";
print $remote "widget_add data title title\n";
print $remote "widget_set data title {Akt. Content}\n";
print $remote "widget_add data one string\n";
print $remote "widget_add data two string\n";
print $remote "widget_add data three string\n";
while(1)
{
my $content = `ps ax | grep apache | wc -l` - 1 ;
print $remote "widget_set data one 1 2 {datafile Content: }\n";
print $remote "widget_set data two 1 3 { $content }\n";
print $remote "widget_set data three 5 4 {just for fun !}\n";
sleep 1;
}
close ($remote) || die "close: $!";
exit;
das skript ohne änderungen geht prima
nun dacht ich ich änders mal so wie ichs brauche:
1. wenn ich my $content z.b. nur ein einfaches `echo "plepps"` angebe wird schon
in der 2 zeile nichts mehr angezeigt, was mache ich da falsch?
nehme ich : my $content = "hallo welt" ; dann zeigt er es an
my $content = `echo "hallo welt"`; geht z.b. nicht
wo ist denn der unterschied zwischen:
my $content = `ps ax | grep apache | wc -l` - 1 ;
und:
my $content = `echo "hallo welt"`; bzw.
my $content = `/sbin/ifconfig ppp0 | grep "inet Adresse"| awk '{ print $2}' |awk -F: '{print $2}'` ;
2. wie erreiche ich, das die while schleife nur alle 10 sekunden durchlaufen wird?
währe nett wenn ihr da ein paar tips hättet
danke
der tom