[BSDi - PHP] "du" doet vaag

Pagina: 1
Acties:

  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Hoi, ik ben even een simpel scriptje aan het in elkaar klussen en dat lijkt gewoon te werken Doel is om een overzichtje te krijgen van het hardeschijfgebruik:
PHP:
1
<?    //Commando uitvoeren        exec("du /home/k/kkarelc/WWW > /tmp/du.tmp");    //Bestand openen        $file = fopen($tmpbestand, "r");        $inhoud = fread($file, filesize("/tmp/du.tmp"));        fclose($file);    //Tabel starten        echo "<h1>Diskusage /home/k/kkarelc/WWW</h1><center><p><br><br><table class=\"echt\" cellspacing=\"1\">\n        <tr><td class=\"echt\">Grootte in KB</td><td class=\"echt\">Directory</td></tr>        <tr><td class=\"echt\">";    //Tabs vervangen door een nieuwe tabel regel        $inhoud = eregi_replace("    ","</td><td class=\"echt\">", $inhoud);        $inhoud = eregi_replace("\n","</td></tr>\n<tr><td class=\"echt\">", $inhoud);    //Inhoud uitpoepen en tabel afsluiten        echo $inhoud; echo "</table><br><br></p>";?>

Alleen dit poept op een of andere vage manier of een pagina uit met de juiste waarden of een pagina met EXACT dubbele waarden?!!? En dat lijkt hij haast random te doen.

Heeft iemand enig idee hoe dat kan? Hier is hij trouwens te vinden: http://www.keizerkarelcollege.nl/diskusage.php3 Als je een paar keer op F5 drukt kan je het zelf zien. (De totale waarde onderin zou ongeveer 91128 moeten zijn, maar is vaak dus het dubbele)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Pak je niet de ene keer de blocks (.5KB dus 2x zoveel) en de andere keer de bytes?

Sowieso doe je het niet echt handig, als het goed is kan je ook de output van exec direct krijgen, ipv eerst in een file zetten.

  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Op donderdag 27 juni 2002 21:02 schreef ACM het volgende:
Pak je niet de ene keer de blocks (.5KB dus 2x zoveel) en de andere keer de bytes?
Het script is de hele tijd exact hetzelfde uiteraard, dus dat lijkt me niet.
Sowieso doe je het niet echt handig, als het goed is kan je ook de output van exec direct krijgen, ipv eerst in een file zetten.
Met $inhoud = exec("du /...... krijg je alleen de laatste regel. Maar dat moet inderdaad anders kunnen. Maar dan blijf ik erg benieuwd why the hell dit niet zou werken?!?1

  • flat
  • Registratie: Mei 2000
  • Niet online
omdat 'ie 't in een array gooit?

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Op donderdag 27 juni 2002 21:06 schreef Flat© het volgende:
omdat 'ie 't in een array gooit?
Dan zou je de foutmelding "Array" krijgen toch?

  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Ik heb dus nog steeds dat hij random de goede en een dubbele waarde weer geeft. Is er echt niemand die enig idee heeft?

Verwijderd

Ik zelf heb vandaag nog problemen gehad met exec.. toen ik shell_exec gebruikte waren mijn problemen voorbij..

  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Op vrijdag 28 juni 2002 22:32 schreef TimD het volgende:
Ik zelf heb vandaag nog problemen gehad met exec.. toen ik shell_exec gebruikte waren mijn problemen voorbij..
Fatal error: Call to unsupported or undefined function shell_exec() in /home/k/kkarelc/WWW/diskusage.php3 on line 74
Nope...

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 21:47
En als je de tmp file eens bekijkt? Zit daar de verdubbeling dan al in of niet?

  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Op zaterdag 29 juni 2002 12:06 schreef ge-flopt het volgende:
En als je de tmp file eens bekijkt? Zit daar de verdubbeling dan al in of niet?
Yups, hij werkt nu trouwens wel de hele tijd terwij lik er niets aan veranderd heb :s

  • Joror
  • Registratie: Augustus 2001
  • Laatst online: 11-03-2017

Joror

the eternal lurker

Probeer eens (let op de back-ticks "`")
PHP:
1
<?$inhoud = `du /home/k/kkarelc/WWW`;?>

ipv
PHP:
1
<?//Commando uitvoeren        exec("du /home/k/kkarelc/WWW > /tmp/du.tmp");//Bestand openen        $file = fopen($tmpbestand, "r");$inhoud = fread($file, filesize("/tmp/du.tmp"));        fclose($file);?>

Uit `man du` :
BUGS
On BSD systems, du reports sizes that are half the correct
values for files that are NFS-mounted from HP-UX systems.
On HP-UX systems, it reports sizes that are twice the cor-
rect values for files that are NFS-mounted from BSD sys-
tems. This is due to a flaw in HP-UX; it also affects the
HP-UX du program.
Misschien dat?

nada aka zilch, formerly known as zip


  • Steven
  • Registratie: December 2000
  • Laatst online: 01-09 09:46
Op zaterdag 29 juni 2002 16:57 schreef Joror het volgende:
Probeer eens (let op de back-ticks "`")
[php][php]
Dan poept hij alleen de laatste regel uit.
Uit `man du` :
[..]

Misschien dat?
Ik denk het wel (tnx :)), alleen vreemd dat hij het de ene keer wel goed doet en de andere keer niet. Nu doet hij het btw de hele tijd goed. (+/- 10 keer geprobeerd)
Pagina: 1