Portál AbcLinuxu, 5. května 2025 18:29

Dotaz: Perl script - export naměřené teploty do souboru

Michnzee avatar 8.2.2012 01:18 Michnzee | skóre: 10 | Praha
Perl script - export naměřené teploty do souboru
Přečteno: 280×
Odpovědět | Admin
Dobrý den,

řeším jeden problém ale nevím jak efektivně na něj. V počítači (Ubunutu Server 10.04) mám script v perlu, který mi zjišťuje teplotu na externím čidlu které měří okolní teplotu. Za pomoci MRTG jsem si vygeneroval grafické přehledy (každých 5 minut MRTG přistoupí k scriptu a zapíše teplotu).

Chtěl bych však teplotu navíc uložit samostatně, například do XML nebo do nějakého jiného formátu (např. txt), odkud s tou naměřenou teplotou mohu dál pracovat (vkládat jí do jiné stránky / do přehledů atp).

Říkal jsem si, že bych mohl využít již vygenerovanou html stránku z MRTG a nějakým parserem si z toho vytáhnout jen tu teplotu. Jenže jsem nenašel efektivní způsob, jak to z toho html souboru dostat, protože jsou tam další stejně pojmenované řádky. Jednoduše - touto cestou nevím jak na to.

Taky jsem se díval do manuálu MRTG, jestli čistě náhodou neumí kromě vykreslení grafu taky tu hodnotu do něčeho uložit. Bohužel jsem taky nic kloubného nenašel.

Zkusil jsem se podívat do toho PERL scriptu, jestli by kromě:
...
my $pcsensor  = Device::USB::PCSensor::HidTEMPer->new();
my @devices   = $pcsensor->list_devices();

foreach my $device ( @devices )
   {
   say $device->internal()->celsius();
   }
nešlo dopsat něco jako "vrať teplotu a ulož do souboru". Bohužel v perlu neumím a podle nějakých google návodů mi to stále nefungovalo - zobrazovala se pouze teplota ale nic se bokem neuložilo.

Taky jsem si říkal, jestli by například PHP umělo nějak includnout ten PERL script, ale zde jsem taky efektivně nepochodil.

Víte tedy někdo, jak jednoduše získat tu teplotu a uložit jí samostatně do nějakého souboru? :) předem děkuji.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Michnzee (tazatel))
8.2.2012 08:07 Samuel | skóre: 19 | Bratislava
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
...
my $pcsensor  = Device::USB::PCSensor::HidTEMPer->new();
my @devices   = $pcsensor->list_devices();

open (MYFILE, '>>data.txt');

foreach my $device ( @devices )
   {
   say $device->internal()->celsius();
   say MYFILE $device->internal()->celsius();
   }

close (MYFILE);
Michnzee avatar 8.2.2012 11:44 Michnzee | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Oooo... takže by to mohlo být rovnou i takto s přímou cestou:
...
my $pcsensor  = Device::USB::PCSensor::HidTEMPer->new();
my @devices   = $pcsensor->list_devices();

open (MYFILE, '>>/var/www/data.txt');

foreach my $device ( @devices )
   {
   say $device->internal()->celsius();
   say MYFILE $device->internal()->celsius();
   }

close (MYFILE);
Děkuji, jdu to zkusit.
Michnzee avatar 8.2.2012 11:52 Michnzee | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Funguje skvěle! Děkuji +1 pro Vás
Michnzee avatar 8.2.2012 12:01 Michnzee | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Ještě se zeptám, jestli jde zápis udělat tak, aby se soubor přepisoval a aby se naměřené hodnoty nepřidávali do toho souboru pod sebe - ale aby tam byla vždy jen ta poslední hodnota. Něco jako v PHP při práci se soubory - "w" nebo "w+". Děkuji
8.2.2012 12:19 Kit
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Zkusil jsi už místo >> použít jen >?
Michnzee avatar 8.2.2012 13:39 Michnzee | skóre: 10 | Praha
Rozbalit Rozbalit vše Re: Perl script - export naměřené teploty do souboru
Jojo, to jsem už zkusil a funguje to. Díky moc

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.