| 32 | 
   | 
              $tcp_port | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 33 | 
   | 
              $filter_addr | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 34 | 
   | 
              $file_list | 
 
 
 
 
 
 
 
 
 | 35 | 
 + | 
              $fqdn | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 | 
   | 
             ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 37 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 | 
   | 
 if (@ARGV != 2) { | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 121 | 
   | 
     print "File list obtained: $file_list\n"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 122 | 
   | 
  | 
 
 
 
 
 
 
 
 
 | 123 | 
 + | 
     print $sock "FQDN\n"; | 
 
 
 
 
 
 
 
 
 | 124 | 
 + | 
     $response = <$sock>; | 
 
 
 
 
 
 
 
 
 | 125 | 
 + | 
     chop $response; | 
 
 
 
 
 
 
 
 
 | 126 | 
 + | 
     $fqdn = $response; | 
 
 
 
 
 
 
 
 
 | 127 | 
 + | 
  | 
 
 
 
 
 
 
 
 
 | 128 | 
 + | 
     print "FQDN returned: $fqdn\n"; | 
 
 
 
 
 
 
 
 
 | 129 | 
 + | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 130 | 
   | 
     print $sock "UDPUpdateTime\n"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 131 | 
   | 
     $response = <$sock>; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 132 | 
   | 
     chop $response; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 188 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 189 | 
   | 
     my(@statgrab) = `./statgrab.pl`; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 190 | 
   | 
     my(%packet); | 
 
 
 
 
 
 
 
 
 
 
 
 | 191 | 
 < | 
     for (my($i) = 0; $i < $#statgrab; $i++) { | 
 
 
 
 
 
 
 
 
 
 | 191 | 
 > | 
     for (my($i) = 0; $i <= $#statgrab; $i++) { | 
 
 
 
 
 
 
 
 
 
 
 
 | 192 | 
   | 
         $statgrab[$i] =~ /^([^\s]*) (.*)$/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 193 | 
   | 
         $packet{$1} = $2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 194 | 
   | 
     } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 198 | 
   | 
     my($disk_info) = "<disk>"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 199 | 
   | 
     my($i) = 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 200 | 
   | 
     while (defined $packet{"packet.disk.p$i.attributes.mount"}) { | 
 
 
 
 
 
 
 
 
 
 
 
 | 201 | 
 < | 
         $disk_info .= "<p$i>"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 202 | 
 < | 
         $disk_info .= qq/<name>$packet{"packet.disk.p$i.attributes.name"}<\/name>/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 203 | 
 < | 
         $disk_info .= qq/<kbytes>$packet{"packet.disk.p$i.attributes.kbytes"}<\/kbytes>/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 204 | 
 < | 
         $disk_info .= qq/<used>$packet{"packet.disk.p$i.attributes.used"}<\/used>/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 205 | 
 < | 
         $disk_info .= qq/<avail>$packet{"packet.disk.p$i.attributes.avail"}<\/avail>/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 206 | 
 < | 
         $disk_info .= qq/<mount>$packet{"packet.disk.p$i.attributes.mount"}<\/mount>/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 207 | 
 < | 
         $disk_info .= "</p$i>"; | 
 
 
 
 
 
 
 
 
 
 | 201 | 
 > | 
         $disk_info .= "<p$i"; | 
 
 
 
 
 
 | 202 | 
 > | 
         $disk_info .= " name=\"" . $packet{"packet.disk.p$i.attributes.name"} . "\""; | 
 
 
 
 
 
 | 203 | 
 > | 
         $disk_info .= " kbytes=\"" . $packet{"packet.disk.p$i.attributes.kbytes"} . "\""; | 
 
 
 
 
 
 | 204 | 
 > | 
         $disk_info .= " used=\"" . $packet{"packet.disk.p$i.attributes.used"} . "\""; | 
 
 
 
 
 
 | 205 | 
 > | 
         $disk_info .= " avail=\"" . $packet{"packet.disk.p$i.attributes.avail"} . "\""; | 
 
 
 
 
 
 | 206 | 
 > | 
         $disk_info .= " mount=\"" . $packet{"packet.disk.p$i.attributes.mount"} . "\""; | 
 
 
 
 
 
 | 207 | 
 > | 
         $disk_info .= "></p$i>"; | 
 
 
 
 
 
 
 
 
 
 
 
 | 208 | 
   | 
         ++$i; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 209 | 
   | 
     } | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 210 | 
   | 
     $disk_info .= "</disk>"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 211 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 | 212 | 
 < | 
     my($hostname) = hostname(); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 213 | 
 < | 
     $hostname =~ s/\..*$//g; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 206 | 
 < | 
     `cat /etc/resolv.conf` =~ /domain\s+([^\s]+)/; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 207 | 
 < | 
     my($domainname) = $1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 208 | 
 < | 
     my($machine_name) = "$hostname.$domainname"; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 209 | 
 < | 
     my($ip) = inet_ntoa(scalar(gethostbyname($hostname)) || 'localhost'); | 
 
 
 
 
 
 
 
 
 
 | 212 | 
 > | 
     my($machine_name) = hostname(); | 
 
 
 
 
 
 | 213 | 
 > | 
     my($ip) = inet_ntoa(scalar(gethostbyname($machine_name)) || 'localhost'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 214 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 215 | 
   | 
     # Build the XML packet this way, as we can clearly | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 216 | 
   | 
     # see the structure and contents... I like this ;-) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 251 | 
   | 
         <swap>$packet{"packet.cpu.swap"}</swap> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 252 | 
   | 
     </cpu> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 253 | 
   | 
     <memory> | 
 
 
 
 
 
 
 
 
 
 
 
 | 254 | 
 < | 
         <total>$packet{"packet.memory.real"}</total> | 
 
 
 
 
 
 
 
 
 
 | 254 | 
 > | 
         <total>$packet{"packet.memory.total"}</total> | 
 
 
 
 
 
 
 
 
 
 
 
 | 255 | 
   | 
         <free>$packet{"packet.memory.free"}</free> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 256 | 
   | 
     </memory> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 257 | 
   | 
     <swap> | 
 
 
 
 
 
 
 
 
 
 
 
 | 258 | 
 < | 
         <total>$packet{"packet.memory.swap_total"}</total> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 259 | 
 < | 
         <free>$packet{"packet.memory.swap_free"}</free> | 
 
 
 
 
 
 
 
 
 
 | 258 | 
 > | 
         <total>$packet{"packet.swap.total"}</total> | 
 
 
 
 
 
 | 259 | 
 > | 
         <free>$packet{"packet.swap.free"}</free> | 
 
 
 
 
 
 
 
 
 
 
 
 | 260 | 
   | 
     </swap> | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 261 | 
   | 
     $disk_info | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 262 | 
   | 
 </packet> |