PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mit lcdproc via perl die aktuelle IP anzeigen



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