• Reset your password

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log in
Hjem
Linuxin 2025

Breadcrumb

  • Hjem
  • forums
  • perlscript: debian, digitemp, rrdtool

Hvad kan du med 100% sikkerhed sige, at du har stemt?

Valgmuligheder
Af bortex | 07.11.2009 20:52

perlscript: debian, digitemp, rrdtool

Programmering

Mit perlscript :





#!/usr/bin/perl

#

# copyright Per Hansen 2009

#

#

# rrd_tempsensor.pl



use lib qw(/opt/rrdtool-1.4.1/lib/perl);

use RRDs;



# sti til rrdtool databases

my $rrd = '/var/lib/rrd';

# sti til færdige grafer

my $img = '/var/www/rrdtool';

# sti til digitemp

my $digi = '/usr/bin';



# hvis rrd-database ikke findes, laves den her

if (! -e "$rrd/temperature.rrd")

{

print "creating rrd database for sensors ...\n";

RRDs::create "$rrd/temperature.rrd",

"-s 300",

"DS:out:GAUGE:600:-50:50",

"DS:in:GAUGE:600:-50:50",

"RRA:AVERAGE:0.5:1:600",

"RRA:AVERAGE:0.5:6:700",

"RRA:AVERAGE:0.5:24:775",

"RRA:AVERAGE:0.5:288:797",

"RRA:MIN:0.5:1:600",

"RRA:MIN:0.5:6:700",

"RRA:MIN:0.5:24:775",

"RRA:MIN:0.5:288:797",

"RRA:MAX:0.5:1:600",

"RRA:MAX:0.5:6:700",

"RRA:MAX:0.5:24:775",

"RRA:MAX:0.5:288:797" ;

}

if ($ERROR = RRDs::error) { print "$0: failed to create temperature database file: $ERROR\n"; }



# aflæs den udendørs-sensor

my $read_out = `$digi/digitemp -t 0 -q -c /etc/digitemp.conf -o%C`;



# aflæs kælder-sensor

my $read_in = `$digi/digitemp -t 1 -q -c /etc/digitemp.conf -o%C`;



# fjerner eol-karaktere i den læste værdi

chomp($read_out);

chomp($read_in);



# check for fejl i temp-sensorerne

if (int $read_out eq 85)

{

print "failed to read value from outside sensor\n";

$read_out = "U";

}

if (int $read_in eq 85)

{

print "failed to read value from basement sensor\n";

$read_in = "U";

}



# indsæt værdier i rrd

RRDs::update "$rrd/temperature.rrd",

"-t", "out", "N:$read_out";

"-t", "in", "N:$read_in";



if ($ERROR = RRDs::error) { print "$0: failed to insert data into rrd: $ERROR\n"; }



#print"out $read_out";

#print"in $read_in";





# generer graf

RRDs::graph "$img/temp-day.png",

"-n", "DEFAULT:0:/usr/share/fonts/truetype/msttcorefonts/arial.ttf",

"-c", "CANVAS#FFFFFF",

"-c", "GRID#BBBBBB",

"-c", "MGRID#BBBBBB",

"-t Temperaturer i Auning, Danmark °C",

"--lazy",

"-a", "PNG",

"-h", "80", "-w", "550",

"-E",

"DEF:outside=$rrd/temperature.rrd:out:AVERAGE",

"DEF:basement=$rrd/temperature.rrd:in:AVERAGE",

"COMMENT:\\c",

"COMMENT: MAX MIN AVERAGE CURRENT\\c",

"LINE2:outside#FF0000:udendørs\\t",

"GPRINT:outside:MAX:%4.2lf °C\t",

"GPRINT:outside:MIN:%4.2lf °C\t",

"GPRINT:outside:AVERAGE:%4.2lf °C\t",

"GPRINT:outside:LAST:%4.2lf °C\\c",

"LINE2:basement#3333CC:kælder\\t",

"GPRINT:basement:MAX:%6.2lf °C\t",

"GPRINT:basement:MIN:%6.2lf °C\t",

"GPRINT:basement:AVERAGE:%6.2lf °C\t",

"GPRINT:basement:LAST:%6.2lf °C\\c",

"COMMENT:\\c",

"COMMENT:Copyright Per Hansen\\c";



if ($ERROR = RRDs::error) { print "$0: unable to generate sensor $_[0] $_[1] graph: $ERROR\n"; }





læser to værdier via digitemp, hvorefter rrdtool genere en graf. Mit problem er dog at enten viser grafen to ens værdier eller kun den ene af dem.

Jeg har førsøgt at ændre mange ting dog uden held. Enten bliver resultatet det ene eller det andet. Det bliver aldrig korrekt.



Er der nogen som kan finde fejlen?



Det skal lige siges at jeg normalt ikke er en koder, hvilket sikkert også kan ses ud fra mit script. Hvis scriptet kan skrives om, men stadig udføre det samme er i velkommne til at gøre det.

  • Log in to post comments

Kommentarer1

15 år 6 måneder siden

Permalink

Indsendt af jospan den 8. november 2009 kl. 23:40

Permalink

Perl-hjælp

Håber der er nogle, der kan hjælpe dig herinde - ellers burde der være muligheder her:



http://www.unix.com/shell-programming-scripting/



og her:



http://www.perlmonks.com/

  • Log in to post comments

Svar søges

Test 0
Den er go 0
Vil du have et sikrere og mere privat internet? Du skal blot installere Vivaldi-browseren med Proton VPN understøttelse! 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

2 stk Jolla C2 sælges 2
"Intet realistisk alternativ" - mig i r*ven 4
Test 2
Det første forumindlæg efter installation af Forum-modulet 8
Vanilla OS 12
Nye forum-indlæg viser sig kun 1 gang 1
Vil alle forumindlæg vise sig to gange 1
Hjælp til remote terminal vindue? 3
PCLinuxOS 19
Kan ikke boote på installation 24
80-20 reglen 1
Skærmlys fader ud på min bærbare 8
32 bit distro på max 700mb der stadig understøttes 26
Har vi nogen Linux konsulenter i Slagelse området? 3
Virkelig 7
gnome-software? 3
Archer T2U AC600 Wireless Dual Band USB Adapter 26
En farverig APT 3.0 udgivelse imponerer med sine nye funktioner 2
Unix's fødsel 2
Linux Mint 13

Copyright © 2025 Company Name - All rights reserved

Developed & Designed by Alaa Haddad