Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

HDD Temperatur per shell exec abfragen

Frage Entwicklung PHP

Mitglied: 8digit

8digit (Level 1) - Jetzt verbinden

05.05.2011 um 12:38 Uhr, 5251 Aufrufe, 8 Kommentare

Guten Tag,

ich habe ich gerade folgendes Script geschrieben:

01.
  
02.
<?php 
03.
$tempHDA = shell_exec('hddtemp -n /dev/hda'); 
04.
$tempHDB = shell_exec('hddtemp -n /dev/hdb'); 
05.
$tempHDC = shell_exec('hddtemp -n /dev/hdc'); 
06.
 
07.
echo $tempHDA.'<br />'; 
08.
echo $tempHDB.'<br />'; 
09.
echo $tempHDC.'<br />'; 
10.
 
11.
?> 
Ziel davon ist es eigentlich, dass mir die Temperatur der drei Festplatten angezeigt wird, jedoch bekomme ich im Browser gar keine Ausgabe.
Bei dem Server handelt es sich um Debian.

Leider weiß ich nicht woran dies liegt, denn wenn ich "'hddtemp -n /dev/hda" in der Konsole eingebe, bekomme ich ein Ergebnis.

Könnt Ihr mir dabei bitte helfen, Danke.

Mfg. 8digit
Mitglied: Dani
05.05.2011 um 12:43 Uhr
Moin,
du weiser aber dass shell_exec im SafeMode von PHP nicht funktioniert. Bitte überprüfe das Mal...


Grüße,
Dani
Bitte warten ..
Mitglied: 8digit
05.05.2011 um 14:41 Uhr
Hallo,

also SafeMode ist ausgeschaltet
und was mich wundert, wenn folgendes funktioniert (damit lese ich die CPU-Temperatur aus)

01.
<?php 
02.
$temperaturCPU = shell_exec('sensors'); 
03.
 
04.
echo $temperaturCPU.'<br />'
05.
?>
Bitte warten ..
Mitglied: Dani
05.05.2011 um 14:53 Uhr
Probier es mal so:
01.
$tempHDA = shell_exec('sudo hddtemp -n /dev/hda');
Ich meine dazu braucht man Root-Rechte...


Grüße,
Dani
Bitte warten ..
Mitglied: 8digit
05.05.2011 um 15:41 Uhr
Also, wenn ich das mit sudo mache, lädt die Seite länger und es kommt immer noch keine ausgabe.

Ich vermute aber, dass es trotzdem irgendwas an den Rechten liegt, weil, wenn ich mich als User einlogge, dann kommt

benutzer@debian:~$ hddtemp -n /dev/hda 
-bash: hddtemp: command not found
und als root, kommt dann

debian:~# hddtemp -n /dev/hda 
34
und weil der Webserver als User "www-user" ausgeführt wird, findet er den Befehl nicht,
was mich jedoch wundert, wieso bekomme ich auf der Homepage nicht die Fehlermeldung angezeigt.?
Bitte warten ..
Mitglied: Dani
05.05.2011 um 16:12 Uhr
Hast du sudo nachinstalliert? Ist nämlich standardmäßig nicht installiert wie z.B. bei Ubuntu.
Bitte warten ..
Mitglied: 8digit
05.05.2011 um 16:39 Uhr
Jup, habe ich nachinstalliert.

ich habe mir hddtemp mal etwas genauer angeschaut und herausbekommen, dass ich, wenn ich per Browser auf den Port 7634 zugreife ich folgende Ausgabe bekomme:
|/dev/hda|ST340823A|35|C||/dev/hdb|SAMSUNG SP0822N|37|C||/dev/hdc|WDC WD1600AAJB-00J3A0|32|C|
so, nun habe ich einfach mit fopen versucht diese seite aus zu lesen:
01.
<?php 
02.
$filestream = fopen("http://localhost:7634", "r");   //localhost, weil das Script auf dem Server liegt. 
03.
while(!feof($filestream)) { 
04.
    $buffer = fgets($filestream, 4096); 
05.
    echo $buffer
06.
07.
fclose($filestream); 
08.
?>
das einige Prblem dabei ist, wenn ich nun die Seite öffne (also nicht die von hddtemp selbst), dann hängt sich mein Firefox auf und ich sehe kurz irgendwelche Fehlermeldung
Diese hier:
Warning: fopen(http://debian:7634/) [function.fopen]: failed to open stream: HTTP request failed! |/dev/hda|ST340823A|35|C||/dev/hdb|SAMSUNG SP0822N|37|C||/dev/hdc|WDC WD1600AAJB-00J3A0|32|C| in /var/www/temperatur/temperatur.php on line 5
Bitte warten ..
Mitglied: Dani
05.05.2011 um 16:48 Uhr
Hmm... das wird so nicht gehen, da du mit fopen nicht auf den Socket zugreifen kannst sondern nur auf eine Datei. Beispiel: http://localhost:7634/index.html
Versuch es mal mit dem Quellcode: http://forum.ubuntuusers.de/topic/mit-php-hddtemp-etc-auf-homeserver-au ...


Grüße,
Dani
Bitte warten ..
Mitglied: 8digit
05.05.2011 um 17:09 Uhr
Ok, also der komplette Quellcode hat mir eigentlich nicht geholfen, eher die Kommentare im Code, weil dieser fast das Selbe ist, wie das von mir, aber nun funktioniert es.

nachdem ich folgendes gemacht habe:
in der Datei "/etc/sudoers "
das "www-data ALL=NOPASSWD: /usr/sbin/hddtemp, /usr/bin/sensors" hinzugefügt.

funktioniert mein Quellcode mit sudo, also
01.
$tempHDA = shell_exec('sudo /usr/sbin/hddtemp /dev/hdb'); 
02.
echo $tempHDA;
Danke für die Hilfe
Bitte warten ..
Ähnliche Inhalte
Peripheriegeräte
gelöst Hardwaretipp: Temperatur und Feuchtigkeitsfühler (15)

Frage von certifiedit.net zum Thema Peripheriegeräte ...

CPU, RAM, Mainboards
Lüftersteuerung basierend auf Systemtemperatur und nicht auf CPU Temperatur (4)

Frage von Lakatusch zum Thema CPU, RAM, Mainboards ...

Batch & Shell
gelöst Variable in Makefile durch Shell Command (2)

Frage von nico1999 zum Thema Batch & Shell ...

Festplatten, SSD, Raid
Prüfung von HDDs - ohne installiertes OS (11)

Frage von quattroM-Techniker zum Thema Festplatten, SSD, Raid ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (14)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...