Crash2001 Geschrieben 4. November 2004 Geschrieben 4. November 2004 Hi zusammen. Ich habe hier einen Apache 2 auf Win2k laufen auf dem ich gerne die Uptime des Webservers per PHP ausgeben würde. Ich hab bisher jedoch nur Möglichkeiten gefunden, die auf Linux/Unix laufen, da sie systembefehle von Linux/Unix benutzen und somit unter Windows natürlich nicht funktionieren... Hat vielleicht jemand eine Idee wie dies unter Win2k funktionieren könnte? Es muss doch eigentlich auch unter Win2k eine Möglichkeit geben dies auszugeben... Am besten wäre noch, wenn dies so wäre, dass es auch unter dem ISS5 funktioniert. Zitieren
kLeiner_HobBes Geschrieben 5. November 2004 Geschrieben 5. November 2004 Hast du Admin-Zugriff auf den Rechner? Hier gibts ein kleines Tool, was dir die Uptime ermittelt. Es schaut dazu im EventLog nach den entsprechenden Einträgen und berechnet dann die Differenz des Timestamps. Zitieren
oscha Geschrieben 5. November 2004 Geschrieben 5. November 2004 windows hat auch von haus aus einen befehl... "systeminfo" in der command mal eingeben (bei XP jedenfalls - ob 2k diesen schon hat ist mir nicht bekannt) Zitieren
kills Geschrieben 5. November 2004 Geschrieben 5. November 2004 schau hier ma rein: http://www.uptime-project.net/ die produzieren dann solche banner ala http://img.uptime-project.net/img/1/24105.png Zitieren
Crash2001 Geschrieben 5. November 2004 Autor Geschrieben 5. November 2004 Geht das denn nicht mit Bordmitteln von PHP? @Kleiner Hobbes: Ja habe ich, aber ich wollte nichts zusätzlich installieren wenn nicht notwendig. @oscha: den Befehl scheint es bei Win2k leider noch nicht zu geben. @kills: Die Seite kenne ich, aber die verwenden ein Tool das bei mir leider keinen Kontakt zu deren Server zum synchronisieren der Uptime aufbauen kann. Das war auch meine erste Idee, aber funzt nicht... Zitieren
FMG Geschrieben 6. November 2004 Geschrieben 6. November 2004 Evt. gehts mit der PEAR-Extension Console_GetOpt bzw. $_SERVER['args'] / $_SERVER['argv']. Zitieren
kLeiner_HobBes Geschrieben 8. November 2004 Geschrieben 8. November 2004 Soweit ich das beurteilen kann, gibt es bei Windows direkt kein Tool mitinstalliert. Und wenn, wie oben beschrieben, von einem Microsoft-Tool, welches übrigens nicht installiert werden muß, da es einfach nur eine kleine EXE ist, erst im EventLog nachgeschaut werden muß, um die uptime zu ermitteln, schließe ich daraus, daß jene nicht einfach in einer Umgebungsvariablen, in der Registry oder in einer Datei gespeichert ist. Es gibt allerdings ne Win32API-Funktion, die das auch kann. Wenn du dein PHP entsprechend konfigurieren kannst: Hier ist ein Beispiel. Zitieren
Crash2001 Geschrieben 8. November 2004 Autor Geschrieben 8. November 2004 [...]Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.[...] Also da das schon nicht plötzlich nicht mehr funktionieren sollte, denke ich mal ich werded as einfach anders machen. Und zwar bei starten von Windows einfach eine Datei anlegen, das Erstellungsdatum der Datei abfragen und die Differenz ausrechnen. Das sollte nämlich auch eigentlich mit allen noch folgenden PHP-Versionen ohne Probleme gehen... Ist zwar vielleicht nicht die einfachste oder sauberste Lösung, aber so wie auf der Seite da beschrieben funktionierts bei mir nicht... (mal davon abgesehen, dass in dem Script noch Fehler stecken) [...]Not supported in multithreaded Web servers [...] Keine Ahnung woran das liegt... Na ja, aber das mit der Datei erstellen funktioniert jedenfalls (einfach ne kleine Batch-Datei in den Autostart oder das sonstwie beim starten anlegen lassen und gut ist) - von daher mache ich mir um das andere nun auch keinen Kopf mehr... Zitieren
Biotecs Geschrieben 8. November 2004 Geschrieben 8. November 2004 $uptime_array = explode(" ", exec("cat /proc/uptime")); $seconds = round($uptime_array[0], 0); $minutes = $seconds / 60; $hours = $minutes / 60; $days = floor($hours / 24); $hours = floor($hours - ($days * 24)); $minutes = floor($minutes - ($days * 24 * 60) - ($hours * 60)); $seconds = floor($seconds - ($days * 24 * 60 * 60) - ($hours * 60 * 60) - ($minutes * 60)); $uptime_array = array($days, $hours, $minutes, $seconds) echo $uptime_array[0] . " Tage " . $uptime_array[1] . " Std " . $uptime_array[2] . " Min\n"; so hab ich es geregelt mfg Zitieren
Crash2001 Geschrieben 8. November 2004 Autor Geschrieben 8. November 2004 @Biotecs: Lies nochmal genau auf was für einem System das laufen soll... unter Windows funktioniert das so nämlich leider nicht... da gibt es leider weder das cat-Kommando noch das Verzeichnis /proc/uptime... Zitieren
Biotecs Geschrieben 9. November 2004 Geschrieben 9. November 2004 ups tut mir leid, hab dein Thread nur überflogen, schnell nach meinem Code nachgesehen und dann gepostet. Zitieren
kLeiner_HobBes Geschrieben 10. November 2004 Geschrieben 10. November 2004 Dann dürfte es aber einfacher sein, das Microsoft-Programm "uptime.exe" zu verwenden, denke ich. Wenn du eh schon außerhalb von PHP was rumfummelst. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.