Synology-Forum.nl
Firmware => Synology DSM algemeen => Topic gestart door: josvanruitenbeek op 08 maart 2012, 13:15:49
-
Weet iemand hoe ik de temperatuur van de interne harde schijf van DS kan uitlezen om deze weer te geven in een PHP of HTML pagina?
-
In principe niet. Hiervoor dien je een command uit te voeren vanuit de shell, wat bij Synology standaard niet mogelijk is.
De command voor het opvragen van de temperaturen in shell is als volgt:
/usr/syno/bin/smartctl -d sat -T permissive -l scttempsts /dev/sda
Je kan proberen om de PHP functies voor het uitvoeren van commands aan te zetten of wellicht de makkelijkere manier, een cronjob instellen die eens in de zoveel tijd een bestandje weg schrijft met daarin de informatie. :)
-
Allicht kan je een deel gebruiken van mijn cacti how to
http://www.robdehoog.nl/technology/cact ... sks-cacti/ (http://www.robdehoog.nl/technology/cacti-on-a-synology-nas-how-to/smart-monitoring-harddisks-cacti/)
-
Dank voor de tips!
Deze cronjobs kan ik ook gebruiken voor een andere vraag van mij: http://www.synology-forum.nl/viewtopic.php?f=30&t=8737.
Ik ga er komende week mee aan het stoeien, kom ik er niet uit dan meld ik me weer.
-
Met dank aan het Cronjob script van Wizjos kan ik nu heel eenvoudig cronjobs maken. Alleen weet ik nu niet hoe ik de commandoregel van Sm0ke0ut:
/usr/syno/bin/smartctl -d sat -T permissive -l scttempsts /dev/sda
kan gebruiken om de opgehaalde informatie in een XML(?) bestand kan laten plaatsen.
Kan dat met een enkele commandoregel in de cronjob of moet de cronjob een hiertoe aangemaakt script aanroepen? Hier is mijn lunix kennis veeeeel te beperkt voor. Als jullie me nog een eindje op weg kunnen helpen zou ik dat geweldig vinden.
Update:
Ik heb het uitgevogeld en voor elkaar gekregen......!
Resultaat: http://www.hazajon.eu/weer/index.php
-
...Ik heb het uitgevogeld en voor elkaar gekregen......!
Resultaat: http://www.hazajon.eu/weer/index.php
Het klopt toch nog niet helemaal, gezien de melding:
Warning: include(servertemp.php): failed to open stream: No such file or directory in /volume1/web/hazajon/weer/index.php on line 35 Warning: include(): Failed opening 'servertemp.php' for inclusion (include_path='.:/usr/syno/php/lib/php') in /volume1/web/hazajon/weer/index.php on line 35
Plerry
-
Het klopt toch nog niet helemaal, gezien de melding:
Warning: include(servertemp.php): failed to open stream: No such file or directory in /volume1/web/hazajon/weer/index.php on line 35 Warning: include(): Failed opening 'servertemp.php' for inclusion (include_path='.:/usr/syno/php/lib/php') in /volume1/web/hazajon/weer/index.php on line 35
Ik zie het zojuist ook. Gisteravond werkte het perfect, straks na mijn andere bezigheden even controleren.
Update: Ik kon het niet laten, was klein foutje, weer opgelost. http://www.hazajon.eu/weer/index.php
-
Voor hen die er gebruik van willen maken mijn werkwijze:
Ten eerste moeten we de temperatuur informatie uit de NAS halen. In een telnet sessie geef je hiervoor het volgende commando (met dank aan Sm0ke0ut):
/usr/syno/bin/smartctl -d sat -T permissive -l scttempsts /dev/sda
Dit geeft ons de volgende informatie:
smartctl 5.42 2011-10-20 r3458 [armv5tel-linux-2.6.32.12] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net (http://smartmontools.sourceforge.net)
Unable to get testing progress of /dev/sda
=== START OF READ SMART DATA SECTION ===
SCT Status Version: 3
SCT Version (vendor specific): 522 (0x020a)
SCT Support Level: 1
Device State: Active (0)
Current Temperature: 34 Celsius
Power Cycle Min/Max Temperature: 14/41 Celsius
Lifetime Min/Max Temperature: 14/41 Celsius
Met een cronjob kunnen we dit automatiseren en de gegevens opslaan in een bestand. Om cronjobs te maken en te beheren heeft WizJos een perfect script geschreven.
Download, installeer en voer eerst uit: init_3rd_party. Dit vind je op de site van WizJos:
http://wizjos.endofinternet.net/synology/index.php/algemeen/3rd-party-apps/init3rdparty
Vervolgens download en installeer je het cronjobs script:
http://wizjos.endofinternet.net/synology/index.php/scripts/cronjobs
Vreemd genoeg werkt dit script sinds DSM 4.0 (bij mij althans) alleen correct als je op DSM inlogt via je extern IPadres. Dus even 'buitenom gaan'.
Maak in een nieuwe cronjob aan met het volgende commando:
/usr/syno/bin/smartctl -d sat -T permissive -l scttempsts /dev/sda> /volume1/....../servertemp.txt
Maak de bestemmingsdirectory compleet met het pad van je keuze. Kies een gebruiker, geef de job een beschrijving (altijd handig om later terug te kunnen zien waar je die job ook al weer voor gemaakt had) en kies een interval voor de job.
Nu willen we de temperatuur weergeven op een webpagina. Hiervoor gebruik ik dit simpele script:
<?php>
//Open het bestand op de lokatie waar de cronjob het heeft neergezet
$a = fopen("/...../servertemp.txt","r");
$b = file("/...../servertemp.txt");
$numbers = count($b);
//lees de regels van het bestand
for ($i=0;$i<10;$i++)
{
//print("$b[$i]<br>");
//verwijder bovenstaande slashes om alle regels weer te geven.
}
//lees de temperatuur op regel 9, 11 positie van rechts, twee posities
$temp = substr($b[9], -11, 2);
//toon temperatuur op scherm
echo "Temperatuur van MijnSynology NAS: $temp° C.";
//sluit bestand
fclose($a);
?>
Plezier en succes er mee!
-
Mooie site!!
Maar als extra zou ik ook de temperatuur van de CPU van de synology bij zetten.
Laatst was die van mij 84 graden celcius. Bleek dat een een laag stof voor de ventilator ingang zat :oops:
Helaas weet ik niet hoe je deze temperatuur op kunt vragen.
-
Mooie site!!
Maar als extra zou ik ook de temperatuur van de CPU van de synology bij zetten.
Laatst was die van mij 84 graden celcius. Bleek dat een een laag stof voor de ventilator ingang zat :oops:
Helaas weet ik niet hoe je deze temperatuur op kunt vragen.
Ik zou is kijken bij Systeeminformatie en dan het groene of rode bolletje! Hou de muis daarop en er komt een temperatuur bij.
-
Ik zou is kijken bij Systeeminformatie en dan het groene of rode bolletje! Hou de muis daarop en er komt een temperatuur bij.
Die ken ik.
Maar niet hoe je die via de command line op kunt vragen om de waarde in bijvoorbeeld een web pagina op te nemen.
-
Nelesss schreef:
Ik zou is kijken bij Systeeminformatie en dan het groene of rode bolletje! Hou de muis daarop en er komt een temperatuur bij.
IK krijg deze 'ledjes' (groene of rode bolletje) niet eens te zien. Is dat een beperking van mijn instapmodelletje, de DS110J?
Ben ook al op verschillende forums aan het zoeken geweest voor een Lunixcommando om CPU temperatuur uit te lezen. Tot op heden zonder resultaat.
-
Ik heb zojuist uitgevonden hoe je de CPU temperatuur kunt uitlezen. Ik heb er tevens maar gelijk een klein shell scriptje voor gemaakt, zodat je ook automatisch het gemiddelde hebt.
#!/bin/sh
cores=`cat /proc/cpuinfo | grep -i processor | wc -l`
counter=0
while [ "$counter" -lt "$cores" ]
do
temperature=$((`cat /sys/class/hwmon/hwmon$counter/device/temp1_input` / 1000))
total=$(( $total + $temperature ))
echo `cat /sys/class/hwmon/hwmon$counter/device/temp1_label`: $temperature
counter=$(( $counter + 1 ))
done
echo Average: $(( $total / $cores ))
Ik hoop dat je er iets mee kan.
Zet de code bijvoorbeeld in het bestand CPUTemp.sh
$ chmod +x CPUTemp.sh
$ ./CPUTemp.sh
Core 0: 54
Core 1: 54
Core 2: 54
Core 3: 54
Average: 54
-
Geweldig! Dank je Sm0ke0ut!
Maar wellicht kun je me nog iets verder helpen, zodat ik ook weer wat bijleer. Tot nu toe ben ik via telnet wel wat aan het verkennen geweest in mijn NAS, maar tot wijzigingen of aanvullingen ben ik nog niet gekomen. Concreet is mijn vraag aan je: waar in mijn NAS moet ik jouw script plaatsen en hoe doe ik dat? Ik ben al wel wat aan het lezen geweest links en rechts maar helemaal duidelijk is het me nog niet.
Ik hoor het graag.
-
Login via telnet/ssh
$ wget http://media.fayntic.com/synology/CPUTemp.sh (http://media.fayntic.com/synology/CPUTemp.sh)
$ chmod +x CPUTemp.sh
$ ./CPUTemp.sh
Core 0: 54
Core 1: 54
Core 2: 54
Core 3: 54
Average: 54
-
Bedankt voor al je moeite Sm0ke0ut. Helaas werkt het niet bij mijn DS110J. De directory
/sys/clas/hwmon/
.
kent mijn NAS niet, ik ben bang dat een DS110J geem CPU temperatuur bijhoud. Hopelijk hebben anderen hier wel iets aan.
-
Ook bij mijn DS111 werkt het script niet.
-
als ik
cat /proc/cpuinfo
run dan krijg ik de het volgende terug:
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 1985.74
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Synology 6282 board
Revision : 0000
Serial : 0000000000000000
ben dus bang dat een DS212+ ook geen temperatuur van de CPU bijhoudt