Ebbe Hjorth skrev:
>> Ebbe Hjorth skrev:
>>> Hej,
>>>
>>> Jeg har et lille program, tsl, jeg gerne vil have til at læse data fra
>>> en
>>> comport temperatur måler.
>>>
>>> Jeg har prøvet med stty på at sætte com porten rigtigt op, men der
>>> kommer
>>> forsat bare russike tegn ad-libitum frem.
>>>
>>> 2. Når jeg bruger cu -l /dev/ttyU0 via putty så kommer der som sagt
>>> masser
>>> af russike tegn, men hvordan får jeg afbrudt cu igen? Der sker intet ved
>>> ctrl+c og jeg er træt af at lukke putty ned og logge på igen.
>>>
>>> 3. Nogen der har en god metode til at af læse data fra sådan en fætter?
>>> (http://www.eekit.dk/product.asp?product=426) jeg vil gerne have data ud
>>> til f.eks. et script hvert 5 minut så jeg kan få det i MRTG og knyttet
>>> sammen med mit sms overvågningssystem.
>>>
>> Hej Ebbe,
>>
>> man cu nævner ~. til at afbryde cu, ligesom med i tip.
>>
>> Jeg har en del perl scripts der henter data via snmp & telnet , trækker de
>> ønskede data, og putter disse i rrd filer.
>> Pga konfirmation har jeg travlt, men jeg sender info efter weekenden.
>>
>>
>
> Hej Robert,
>
> Mener du at man skal trykke ~ + . for at afbryde?
Yeps
>
> Er det efter weekenden nu? :)
Med en snmpwalk kan jeg hente følgende:
$ snmpwalk -v 1 -c public 10.101.77.33 1.3.6.1.4.1.13732.1.4.3.1.2
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.268733 = STRING: "5.800000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.270412 = STRING: "7.780000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.275761 = STRING: "9.270000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.275824 = STRING: "10.560000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.276694 = STRING: "7.300000"
SNMPv2-SMI::enterprises.13732.1.4.3.1.2.5068656 = STRING: "9.020000"
Dette er SNR (Signal to Noise Ratio) for 6 modemer hvor fx. 268733 er
serienr for hvert enkelt modem.
Nedestående perlscript henter disse data og lægger SNR i en rrd fil.
Der benyttes en rrd fil pr modem. Serienr indgår i filnavnet.
Scripten finder selv ud af om der er kommet et nyt modem og opretter så
en rrd fil til dette.
I perlscriptet udføres selve snmpwalk kommandoen som et eksternt kald.
Bemærk at tegnene før og efter kommandoen er dem der sidder over | tasten.
mvh
Robert
#!/usr/bin/perl
#
use RRDs;
$datadir = "/var/db/rrds/";
$NMS = "-v 1 -c public 10.101.77.33";
$DSdownSNR = "DS:DownSNR:GAUGE:120:0:100";
$RRAaverage = "RRA:AVERAGE:0.5:1:46080";
$interval = 60;
$step = "-s $interval";
$OIDdownSNR = '1.3.6.1.4.1.13732.1.4.3.1.2';
@DownSNR = `/usr/local/bin/snmpwalk $NMS $OIDdownSNR`;
$cur_time = time();
sub UpdateDownSNR {
if (!(-e $rra_file)) {
RRDs::create("$rra_file","$step","$DSdownSNR","$RRAaverage","$RRA10min");
my $ERR=RRDs::error;
print ("$ERR\n") if $ERR;
}
RRDs::update ("$rra_file","$cur_time:$DownSNR");
my $ERR=RRDs::error;
print ("$Remote $cur_time $ERR\n") if $ERR;
}
for (@DownSNR) {
if (/3\.1\.2\.(.+) =/){
$Remote = $1;
if (/"(.+)"/) {
$DownSNR = $1;
$rra_file = "$datadir$Remote\_DownSNR.rrd";
&UpdateDownSNR;
}
}
}
Received on Tue 04 May 2010 - 21:36:04 CEST
This archive was generated by hypermail 2.2.0 : Wed 27 Mar 2013 - 10:40:20 CET