Schrift
[thread]6657[/thread]

ausgabe bei STDIN ?: ausgabe bei STDIN ? (Seite 2)



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
format_c
 2005-01-24 14:36
#51226 #51226
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=frage,24.01.2005, 13:32]...
jetzt soll er ein externen shell script ausfüren ansaat die ausgabe . z.B shelscript.sh,
...[/quote]
Bitte übersetzen :-)

Gruß Alex
frage
 2005-01-24 14:46
#51227 #51227
User since
2005-01-24
6 Artikel
BenutzerIn
[default_avatar]
format_c : na ja das extern kann man sich wegdenken :)
Und wenn ich schon dabei bin , wie realisiere ich das denn.

Kucke nach dem RING pattern in der log (das geht ja jetzt :)

wenn das RING in kommenden 5 Sekunden 3 mal auftaucht starte das shellscript.sh
else
verwerfe den das zeug im zeit buffer und warte auf neue RING's . Vieleich kommen die nexten 3 inerhalb 5 sekunden... :)

Ich frage mich wie er merkt wann er anfeängt die RING's zu zählen ? ich kann mir nich vorstellen wie das funktioniren soll

gruss Martin
polkana
 2005-01-24 14:47
#51228 #51228
User since
2004-06-18
74 Artikel
BenutzerIn
[Homepage] [default_avatar]
Geht so ?
Code: (dl )
1
2
3
if ($true_value) {
system("/usr/home/patch/shelscript.sh");
}
frage
 2005-01-24 14:57
#51229 #51229
User since
2005-01-24
6 Artikel
BenutzerIn
[default_avatar]
pokana , ich verstehe leider nicht mit dem zeitbuffer , wie weiss er den wann er anfangen muss die 3 RINGs zu zehlen ? (könnte ja bei jedem Ring anfangen und beenden) .
für kurze erklärung wäre ich dankbar.
renee
 2005-01-24 15:02
#51230 #51230
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ungefähr so:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $counter = 0;
my $start;
my $end;
while (<DATA>) {
$counter++ if /send/i;
$start = time if($counter == 1);
if($counter == 3){
$counter = 0;
$end = time;
system("shellscript.sh &") if(($end - $start) > 3);
}
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2005-01-26 01:28
#51231 #51231
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
@renee: Deine Loesung hat den Nachteil, dass keine einzelnen Ereignisse vorkommen duerfen, da sonst die Synchronisation fehlt: "RING - 10 sec - RING - 1 sec - RING - 1 sec - RING ..." wuerde nicht erkannt.

Hier eine Alternative (ungetestet):
Code: (dl )
1
2
3
4
5
6
7
8
my @times;
while (<>) {
   next unless /RING/i;        # alles, was kein RING ist, ueberspringen
   if (@times >= 3 && time - shift @times < 3) {   # 3 mal und weniger als 3 Sekunden
           system ('shellskript &') == 0 or warn "kann shellskript nicht starten: $@";
   }
   push @times, time;
}
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2005-01-24 13:40.