Thread skript-fehlersuche (23 answers)
Opened by turbo at 2011-11-25 15:24

Gast turbo
 2011-11-25 15:24
#154468 #154468
hallo,bin in sachen programmierung leider kein fachmann weßhalb mein problem wahrscheinlich nur ein banaler fehler im skript ist.aber ich find ihn eben nicht .
mein skript soll die status-xml mehrerer medienserver abfragen und mir den inhalt des tags connectionscurrent (user-zahl) ausgeben. führe ich das skript so wie es ist aus, bekomme ich zwar userzahlen, aber immer die selbe! die ip´s landen aber korrekt in der foreach schleife..

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
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
#!/usr/bin/perl -w

use strict;
use XML::LibXML;
use Cwd;
use LWP::UserAgent;
use URI::Escape;




#-------- Parameter --------#
my $strLine;
my $strWorkingDir = cwd;
my $strLogger = '/var/log/wowzaGrabber.log';

my $strType                         = "Customer";
my $strStreamorCustomerElement      = "ConnectionsCurrent";

my $strKundeorStream                = $ARGV[0];
my $strServerIp_1                   = $ARGV[1];
my $strServerIp_2                   = $ARGV[2];
#my $strServerIp_3                   = $ARGV[3];
#my $strServerIp_4                   = $ARGV[4];
#my $strServerIp_5                   = $ARGV[5];
#my $strServerIp_6                   = $ARGV[6];
#my $strServerIp_7                   = $ARGV[7];
#my $strServerIp_8                   = $ARGV[8];
#my $strServerIp_9                   = $ARGV[9];
#my $strServerIp_10                  = $ARGV[10];

#-------- Server IPs in Array schreiben ------#
my @IPs =
(
 $strServerIp_1,
 $strServerIp_2,
# $strServerIp_3,
# $strServerIp_4,
# $strServerIp_5,
# $strServerIp_6,
# $strServerIp_7,
# $strServerIp_8,
# $strServerIp_9,
# $strServerIp_10
);


#--- Parser ----------------------------------#
my $xmlParser = XML::LibXML->new();
my $httpGet   = LWP::UserAgent->new;


foreach my $strItem(@IPs)
{
#my $xmlParser = XML::LibXML->new();
#my $httpGet   = LWP::UserAgent->new;
my $strUrl = "http://$strItem:8086/connectioncounts.xml";
my $strTempFile = "/tmp/wowza$strItem.xml";

#-Get Datasource---------------------------------------------------------#
$httpGet->agent('ReportsBot/1.01');
$httpGet->credentials(
                            "$strItem:port",
                            'Wowza Media Systems',
                            'user' => 'passwort'
                     );
my $response = $httpGet->get($strUrl);

#-Write Tempfile----------------------------------------------------------#
open FILE, ">/tmp/wowza$strItem.xml" ;
print FILE ($response->decoded_content);
close FILE;


#-MAIN-------------------------------------------------------------------#
#my $output = parseXml($strKundeorStream,$strStreamorCustomerElement,$strType);
print parseXml($strKundeorStream,$strStreamorCustomerElement,$strType);

sub parseXml
 {
    my($strKundeorStream,$strStreamorCustomerElement,$strType) = @_;
    my $xmlStruct = $xmlParser -> parse_file($strTempFile)or die;
    my $xmlRootElement = $xmlStruct -> getDocumentElement();
    my $xmlRootElementName = $xmlRootElement -> getName();
    my @arrNodes;
    my $strLine = "";
                              my @arrElement = $xmlRootElement->getElementsByTagName("Application");
                              foreach my $strChild (@arrElement)
                              {
                               @arrNodes  = $strChild->getElementsByTagName("Name");
                               if  ($arrNodes[0]->getFirstChild->getData eq $strKundeorStream)
                              {
                                @arrNodes  = $strChild->getElementsByTagName($strStreamorCustomerElement);
                                $strLine   .= $arrNodes[0]->getFirstChild->getData;
     return $strLine;
 print  $strLine ;               
                              }
                              }
 }
}

danke!

modedit Editiert von pq: code-tags repariert
Last edited: 2011-11-25 15:45:24 +0100 (CET)

View full thread skript-fehlersuche