Hddtemp på websida? [LÖST]

PHP kan diskuteras här.

Moderatorer: Nille, Minime

denil
Lärling
Inlägg: 171
Blev medlem: 07 feb 2005 19:17

Hddtemp på websida? [LÖST]

Inlägg av denil »

Jag har hddtemp inlagt på min slackburk, och hade velat skriva ut tempen i en php-sida.
Någon som vet hur man kan lösa det? :P

Kod: Markera allt

root@Synthetic:/# hddtemp /dev/hda
/dev/hda: ST380011A: 32°C
måste vara root när jag kör hddtemp, men det kanske går att lösa med chmod +x eller ändra rättigheterna ? (inte så haj på linux)
Senast redigerad av denil den 14 dec 2005 22:58, redigerad totalt 1 gånger.
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Det du förmodligen vill ha är exec(); eller passthru();. exec ger dig output i en variabel medan passthru slänger in det på sidan direkt.


Att du enbart kan köra hddtemp som root beror troligen inte på programmet som sådant utan snarare permissions på /dev/hda. Jag vet inte om det är så smart att tillåta att andra användare skriver till den, men i och med att det är så man gör med brännare (???) så borde det väl fungera?

Annars kan du ju göra en fuling, genom att köra ett cron-job som root där du sparar hddtemp i en fil, för att sedan läsa in filen på hemsidan?

Beroende på hur ofta du vill ha det uppdaterat kan det kanske vara en bra lösning, med tanke på säkerhet\driftstabilitet osv.


Edit: Jag laddade ner hddtemp (trevligt program!), och det visar sig att det har ett daemon-läge, där det liggger i bakgrunden och lyssnar på port 7634. Om du startar det som root och sedan kontaktar det via fsockopen(); och läser tempinfo därifrån så kanske du kan komma runt det i "realtid" ?
kolla
hddtemp --help
för mer info om saken.

Jag återkommer när jag har scriptat ihop en lösning :roll:
Senast redigerad av Dukeman den 14 dec 2005 21:29, redigerad totalt 1 gånger.
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
exz
Allsmäktig
Inlägg: 378
Blev medlem: 28 sep 2003 21:03
ORT: Falun

Inlägg av exz »

eller så kan man göra en ännu fulare fuling och lägga hddtemp i bakgrunden (hddtemp -d /dev/hda /dev/hdb) och sen koda nåt i php som hämtar via TCP/IP :P
Administratör på slackware.se
& moderator i forumet
Slackware sedan version 7.1
denil
Lärling
Inlägg: 171
Blev medlem: 07 feb 2005 19:17

Inlägg av denil »

chown'ade /dev/hda och /usr/sbin/hddtemp till <användare>:users provade även med nobody:nogroup men inget av det fungerar :/

kör jag kommandot som vanlig user får jag bara /dev/hda: Permission denied

ingen av er experter som har tid/ork/lust att skriva ihop en liten how-to eller kodsnuttar åt mig? =)

edit: Dukeman najs :P
ska kolla upp det där, om jag lyckas få ihop något, trost bristande php-kunskaper :D
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Tja, jag och Denil gick igenom saken via *host* ett IM-program vi alla känner till *host*

och kom fram till följande lösning:

Kod: Markera allt

function hddtemp($dev)	//Send in dev such as /dev/hda
{
              //This connects to a local hddtemp daemmon.
              //http://www.guzu.net/linux/hddtemp.php
              //
              //I recommend the following command line to start a daemon for /dev/hda and /dev/hdc
              //$ hddtemp -d -l 127.0.0.1 /dev/hda /dev/hdb
              //
              // This ensures that it only responds to local connections.
      $HDDsock = fsockopen("127.0.0.1" , 7634, $ERR);
      if ( $ERR )	//Something went to Fsck with the connection
      {
            return 0;
      }
      $RET ="";		//Initialize...
      while (!feof($HDDsock))
      {
          $RET .= fgets($HDDsock,128);	//Catch that output, bitch!
      }
      //We get something like this returned:
      //|/dev/hda|ST380011A|32|C|
      //repeated for each of the monitored drives. we need to find the one we need...
      $drives = explode("||","|" . $RET); //We have two pipes between each drive, but only one in front of the first. Compensate!
      foreach ($drives as $CURDRIV)	//Do them one by one...
      {
        $SECTIONS = explode("|", $CURDRIV);	//Get each of the sections...
        //now $SECTIONS['0'] contains our drive device and $SECTIONS['2'] has the temperature. As a bonus we have the Unit (it seems) in ['3'].
        if ($dev == $SECTIONS['0'])
        {
            return $SECTIONS['2'] . "°" .  $SECTIONS['3']; //Send it back!
        }
      }          
      
      //We didn't find our device in the list.. that's sad.,..
      return 0;

}
För er som vill ha mer så kanske jag vågar göra reklam för min egna lilla kodhink sysinfo.php som har lite sådana här saker (denna funktion också, numera). Ha så trevligt!
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
denil
Lärling
Inlägg: 171
Blev medlem: 07 feb 2005 19:17

Inlägg av denil »

Dukeman skrev:Tja, jag och Denil gick igenom saken via *host* ett IM-program vi alla känner till *host*

och kom fram till följande lösning:

Kod: Markera allt

 en massa kodsnuttar :P
För er som vill ha mer så kanske jag vågar göra reklam för min egna lilla kodhink sysinfo.php som har lite sådana här saker (denna funktion också, numera). Ha så trevligt!
Vi och vi? Du gjorde jobbet, och jag ställde alla jobbiga frågor :P
Du ska ha all credit för scriptet !
denil
Lärling
Inlägg: 171
Blev medlem: 07 feb 2005 19:17

Inlägg av denil »

Dukeman skrev:Tja, jag och Denil gick igenom saken via *host* ett IM-program vi alla känner till *host*

och kom fram till följande lösning:

Kod: Markera allt

kod
För er som vill ha mer så kanske jag vågar göra reklam för min egna lilla kodhink sysinfo.php som har lite sådana här saker (denna funktion också, numera). Ha så trevligt!
Du förresten, är det okey om jag gör ett försök med att ändra din kod lie här och var så jag får ihop det med conky?
Då kan jag printa ut lite mer onödig info på webben :D
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Vill du ha det så får du ta det. Jag orkar inte tjafsa med licenser och avtal och skit...

Kanske WTFPL?

Varsågod!
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
denil
Lärling
Inlägg: 171
Blev medlem: 07 feb 2005 19:17

Inlägg av denil »

Dukeman skrev:Vill du ha det så får du ta det. Jag orkar inte tjafsa med licenser och avtal och skit...

Kanske WTFPL?

Varsågod!
Hehe, men endel har en tendens att bli griniga om deras kod modifieras. Så jag tänkte det är bäst att fråga före :D
jenso
Gud
Inlägg: 1823
Blev medlem: 08 okt 2003 10:35

Inlägg av jenso »

Glöm för tusan inte licensen. Annars är det per automatik, den svenska lagstiftningen som gäller;)

/Jens
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Upphovsrätt osv med andra ord?

men om jag då skriver i den att vem som helst får göra vad som helst. då ärd et det som gäller?

Känns lite pretentiöst att inkludera GPL i filen, iom att filen i sig är kortare än GPL.

men som sagt.. WTFPL

Länken pekar till googles cace, för sidan var dråpligt slö.
Originalsidan finns

Jenso: om jag kopierar texten som finns där till headern på mina fina php-filer, räcker det för att den juridiskt ska vara "öppet byte" ?
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
jenso
Gud
Inlägg: 1823
Blev medlem: 08 okt 2003 10:35

Inlägg av jenso »

Dukeman skrev:Upphovsrätt osv med andra ord?

men om jag då skriver i den att vem som helst får göra vad som helst. då ärd et det som gäller?

Känns lite pretentiöst att inkludera GPL i filen, iom att filen i sig är kortare än GPL.

men som sagt.. WTFPL

Länken pekar till googles cace, för sidan var dråpligt slö.
Originalsidan finns

Jenso: om jag kopierar texten som finns där till headern på mina fina php-filer, räcker det för att den juridiskt ska vara "öppet byte" ?
Troligen räcker det med ett par förklarande rader och en länk (URL).
Till var man hittar orginalet, om det är önskvärt. Behövs för GPL.
Sedan kan du ju ha en egen licens. Där du kan ange vad du vill.
Detta säger jag *utan*, att vara juridiskt kunnig på något sätt.
Var på en föreläsning om bland annat just det. Det är för allas säkerhet. Det finns nitiska idioter, som älskar att göra nedslag;)
Kom just på. Att jag har precis, gjort ett par sådana missar;-)

/Jens