init III
This commit is contained in:
79
Perl OPC Messages/opc2.pl
Normal file
79
Perl OPC Messages/opc2.pl
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/bin/perl
|
||||
|
||||
#use strict;
|
||||
|
||||
my $hostname;
|
||||
my $mall;
|
||||
my @ausg;
|
||||
my %para;
|
||||
my $k;
|
||||
my $v;
|
||||
my @msg_in;
|
||||
my %OPC;
|
||||
my $txt;
|
||||
my @TEMP;
|
||||
my @DEST;
|
||||
my $count;
|
||||
my $host;
|
||||
my $i;
|
||||
my ($sekunden, $minuten, $stunde, $tag, $monat, $jahr, $wochentag, $tag_im_jahr, $ist_sommerzeit);
|
||||
|
||||
$hostname = `hostname`;
|
||||
chomp $hostname;
|
||||
$mall = "-m all";
|
||||
my $order;
|
||||
|
||||
foreach (@ARGV) {
|
||||
($k,$v)=split /=/,$_;
|
||||
$para{$k}=$v;
|
||||
}
|
||||
|
||||
open TAB, "<opc.tab" or die "$!";
|
||||
open CONF, "<opc2.conf" or die "$!";
|
||||
|
||||
while ( <CONF> ) {
|
||||
if ( $_ =~ /count/ ) {
|
||||
@TEMP = split /=/, $_;
|
||||
$count = @TEMP[1];
|
||||
}
|
||||
if ( $_ =~ /dest/) {
|
||||
@TEMP = split /=/, $_;
|
||||
@DEST = (@DEST, $TEMP[1]);
|
||||
}
|
||||
}
|
||||
|
||||
while (<TAB>) {
|
||||
chomp;
|
||||
@msg_in = split /,/,$_;
|
||||
$OPC{$msg_in[0]}=$msg_in[1];
|
||||
}
|
||||
chomp %OPC;
|
||||
|
||||
$txt="$para{'T'}";
|
||||
open OUT, ">>opc2.log";
|
||||
foreach $host(@DEST) {
|
||||
chomp $host;
|
||||
for($i=1;$i<=$count;$i++) {
|
||||
($sekunden, $minuten, $stunde, $tag, $monat, $jahr, $wochentag, $tag_im_jahr, $ist_sommerzeit) = localtime;
|
||||
if ($OPC{$para{"O"}}eq undef ) {
|
||||
printf(OUT "%4d-%02d-%02d %02d:%02d:%02d OPC-Message (%s) not defined or not found!\n",$jahr+1900,$monat+1,$tag,$stunde,$minuten,$sekunden,$para{'O'});
|
||||
if ($ENV{"OS"} eq "Windows_NT") {
|
||||
@ausg=`snmptrap $mall $host public .1.3.6.1.4.1.2222 $hostname 6 999 0 .1.3.6.1.4.1.0.2222 string "UNDEF_OPC_MSG:$OPC{$para{'O'}}"`;
|
||||
}
|
||||
else {
|
||||
@ausg=`snmptrap -c public $host .1.3.6.1.4.1.2222 $hostname 6 999 0 .1.3.6.1.4.1.0.2222 octetstring "UNDEF_OPC_MSG:$OPC{$para{'O'}}"`;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($ENV{"OS"} eq "Windows_NT") {
|
||||
@ausg=`snmptrap $mall $host public .1.3.6.1.4.1.2222 $hostname 6 $OPC{$para{"O"}} 0 .1.3.6.1.4.1.0.2222 string $txt`;
|
||||
}
|
||||
else {
|
||||
@ausg = `snmptrap -c public $host .1.3.6.1.4.1.2222 $hostname 6 $OPC{$para{"O"}} 0 .1.3.6.1.4.1.0.2222 octetstring $txt`;
|
||||
}
|
||||
printf(OUT "%4d-%02d-%02d %02d:%02d:%02d Send OPC-Message (%s %s) (%s) to %s\n",$jahr+1900,$monat+1,$tag,$stunde,$minuten,$sekunden,$para{'O'},$OPC{$para{'O'}},$txt,$host);
|
||||
#print OUT "Send OPC-Message ($para{'O'} $OPC{$para{'O'}}) ($txt) to $host\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
close OUT;
|
||||
Reference in New Issue
Block a user