Thread Datei mit x Zeilen und 5 Spalten auslesen | wget $1 $2 $3 usw. (25 answers)
Opened by guest newbie at 2009-09-24 11:34

findus2099
 2009-09-28 20:43
#126311 #126311
User since
2009-09-28
4 Artikel
BenutzerIn
[default_avatar]
das ich einmal Website_Monitor und einmal Monitor geschrieben habe ist gewollt. Zwei verschiedene Parameter..

Aber dein Tipp mit dem zusammenfassen der Parameter hat mir geholfen! :-) Jetzt 'funzt' der Aufruf.

Jetzt muss ich nur noch rausfinden warum nur die letzte der Zeilen in der Konfigdatei als Meldung (Alert) erscheint.

Vielen Dank mal wieder!

gruß
Dave

hier der komplette code wie er funktioniert (Ausnahme wie oben beschrieben)

Code (perl): (dl )
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
#!/opt/OV/nonOV/perl/a/bin/perl
use strict;
use warnings;

sub safe_backticks
{
    my ($cmd, @args) = @_;
    open (my $pipe, '-|', $cmd, @args)
        or die "Could not run $cmd @args: $!\n";
    
    my $output = do {local $/; <$pipe>};
    defined ($output) or die "read: $!";
    
    unless( close($pipe) )
    {
        my $error = ($? & 0x7f)
            ? 'Signal ' . ($? & 0x7f)
            : 'Exit status ' . ($? >> 8);
        die "$error: $cmd @args";
    }
    return $output;
}

my $MON_NAME = $ARGV[0];
print $MON_NAME;
# Config-Datei Initialisierung
my $config = '/var/opt/OV/bin/instrumentation/webpage_check.cfg';

# Oeffne Datei zum Lesen, bei Fehler brich ab
open my $fh, '<', $config or die $!;

# einlesen des Config Files
while( my $line = <$fh> ) {

    # teile Zeile an Tabulator und nimm die Elemente
    # Aufbau der Konfidatei:
    # Name des WebServers in 'FQDN' Tabulator 'ServiceID' Tabulator 'URL für wget' Tabulator 'zu matchendes pattern' Tabulator 'Kommentar'
    # fqdnTABsvc_idTABurlTABpatternTABcomment
    
    my ($fqdn, $svc_id, $url, $pattern, $comment) = split (/\t/, $line);
    
    # uebergib URL an wget
    my $content = safe_backticks('/usr/sfw/bin/wget', '-t', '2', '-T', '5', '-S', '-O', '-', $url );
 
        # Suche des zu erwartenden pattern innerhalb des Abbilds

  my @foo = grep(/$pattern/, $content);

          if ( @foo ){
      # wenn das $pattern im $content gefunden wurde, erzeuge einen Openview internen Aufruf (Wert 0 erzeugt ein Normal (grün) Event)
      system "/opt/OV/bin/opcmon", "$MON_NAME=0", "-object", "Webpage_Monitor", "-option", "node=$fqdn", "-option", "url=$url", "-option", "svc_id=$svc_id", "-option", "comment=$comment";
      

             }else {
      # wenn das $pattern im $content nicht gefunden wurde, erzeuge einen Openview internen Aufruf (Wert 1 erzeugt ein major (orange) Event)
      system "/opt/OV/bin/opcmon", "$MON_NAME=1", "-object", "Webpage_Monitor", "-option", "node=$fqdn", "-option", "url=$url", "-option", "svc_id=$svc_id", "-option", "comment=$comment";
                            
    }
}
close $fh;

View full thread Datei mit x Zeilen und 5 Spalten auslesen | wget $1 $2 $3 usw.