PHP Status Skript

kalleberlin

Lieutenant
Dabei seit
Feb. 2005
Beiträge
851
Hi there,

Ich bräuchte ein PhP Skript, was mir ausgibt seit wieviel Stunden mein webserver läuft. Ist das irgendwie möglich?
 

alegro007

Lt. Junior Grade
Dabei seit
Apr. 2003
Beiträge
407
Kleiner anderer Tip, es gibt doch dieses Uptime Projekt vielleicht hilft dir das weiter...
 

Benj

Lt. Commander
Dabei seit
Okt. 2005
Beiträge
1.869
PHP:
<?php
 exec ( "uptime", $arr );
 print ( "<pre>\n" );
 foreach ( $arr as $k => $v ) {
  print ( $v ."\n" );
 }
 print ( "</pre>\n" );
?>
Probier’ das mal bitte aus. Funktioniert zumindest auf meinem Webserver, der unter FreeBSD läuft.
 
Zuletzt bearbeitet:

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
@alegro007

Danke, für den Tip.

@Benj

Bei deinem Skript wird leider nur eine weisse Seite angezeigt :(

Ich glaube ich sollte auch noch kurz erwähnen das es sich hiebei um einen windows webserver handelt. Als Webserver benutze ich Apache 2.

Mein Problem ist, das die Skripte meist auf Linux zugeschnitten sind. Und ganz wichtig! ich möchte nicht wissen wie langer der server "an" ist, sondern wie lange er "Online" ist.


Kurz die idee dazu. Da der Webserver an einer Flat angebunden ist und somit unter einer 24h Trennung leidet, würde ich gern Publizieren, wann die nächste Trennung erfolgt.


Hoffentlich geht sowas überhaupt :freak:
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Zitat von kalleberlin:
@alegro007
Kurz die idee dazu. Da der Webserver an einer Flat angebunden ist und somit unter einer 24h Trennung leidet, würde ich gern Publizieren, wann die nächste Trennung erfolgt.
Hoffentlich geht sowas überhaupt :freak:
@kalleberlin
Reicht da nicht ein einfaches Counterscript? Die Trennung ist doch nicht unregelmässig, oder?

Ansonsten könnte man sowas auch zur Not über DB oder per file realisieren. Sprich die Uhrzeit dort vermerken (per intervall oder klick o.ä. ) und ggf. dann anhand dessen und der aktuellen Uhrzeit berechnen. Ist zwar nie 100% genau, aber sollte in den meisten Fällen ausreichen, wenn man nicht gerade Laufzeitwettbewerbe veranstalten will. ;)
 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
Ein Counterscript wäre mir eigentlich zu ungenau. Da hört sich deine 2 Idee schon ein wenig besser an :). Allerdings versteh ich das noch nicht so ganz genau wie du das meinst :D

Wichtig ist, das es zu 100% automatisch läuft

//edit

Niemand mehr eine Idee? :(

//edit2:

Hab leider immernoch keine Lösung des Problems gefunden :freak:

//edit3:

Ich hab mal ein Bild angehangen wo man die Zeit sieht, wie lange die Verbindung schon Online ist. Gibt es eine Möglichkeit, diese irgendwie auszulesen?

Ah ich werd noch bekloppt :(
Es muss doch ne Möglichkeit geben, diese verdammte Internet Uptime auslesen zu können. Bin ich denn der einzige der das braucht :mad:?
 

Anhänge

Zuletzt bearbeitet:

davidbaumann

Commodore
Dabei seit
Aug. 2004
Beiträge
4.864
Mit nem Linuxserver wäre das in ein paar Minuten schätze ich mal erledigt.
An deiner Stelle würde ich ein kleines Prog schreiben, das (wie ich glaub schonmal in nem Post erwähnt habe) via perfmon konstant die Informationen ausliest und in ne Datenbank reinschreibt (das ganze als Service)
Auslesen ist dann ja echt nicht schwer, und ausserdem könntest du gleich noch viel mehr Informationen sammeln und ne Statistik machen.
Wenn du das nicht willst reicht ne einfache Datei.

David

Doppelpost?: https://www.computerbase.de/forum/threads/internet-uptime.185430/
 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
@ Relict

Also das Sysinfo Tool ist wirklich ziemlich mächtig. Danke erstmal dafür ;). Allerdings liest das auch wieder nur die Systemzeit aus :freak:. Gebrauchen kann ich es trotzdem :D.

@Davidbaumann

Nein es ist kein "Doppelpost". Hier geht es lediglich um das "PhPskript" als solches, und in dem anderen Thread gehts um das Windows Tool. Ich hab "Aki" vorher extra gefragt, ob ich das so machen darf ;).

Danke Trotzdem ;)
//edit:

Kann mir jemand von euch ein PHP-Skript schreiben, das 24h rückwärts runterzählt? Wenn es geht, dann sollten Stunden, Minuten und Sekunden in Echtzeit (ich glaube das ist dann Java) ausgegeben werden. Ich bin nämlich irgendwie zu doof dazu :D

Danke schonmal im vorraus.

//edit:

Ich habs mal selbst versucht, aber irgendwas stimmt da nicht :freak:. Beim öffnen sagt er "fehler Zeile 21". Und bitte nicht lachen ich "programmier" zum ersten mal :baby_alt:.

PHP:
<?php
$stunde = 23;
$minute = 59;
$sekunde = 59;

$zeit = time();
 if( $zeit != $zeit )
 {
        $sekunde = $sekunde -1;

    	if( $sekunde == 0 )
        {
       		$minute = $minute -1;
       			
                        if( $minute == 0 )
                        {
           		        $stunde = $stunde -1;
		        }
	}
  }
echo $stunde ":";
echo $minute ":";
echo $sekunde".";

?>
Muss ich die IF-Anweisung irgendwie noch beenden?
 
Zuletzt bearbeitet:

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
$zeit != $zeit ????

echo $stunde.":";
echo
$minute.":";
echo
$sekunde.".";


aber irgendwie haut das alles nicht hin. Was soll denn bei dieser Funktion am Ende rauskommen, alles um 1 abgezogen oder was?

wann (bei welchen bedingungen) soll er denn überhaupt was abziehen?


 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
:D...ich sag ja ich habs noch nich gemacht^^

Also die erste if-anweisung soll ausgeführt werden wenn eine sekunde vergangen ist. ich hab gelesen das "time ();" die sekunden seit irgendwann 1970 zählt.

deswegen oben ganz am anfang "time ();" in $zeit gespeichert. Macht der das nicht jedesmal neu? weil wenn er das jedesmal neu speichert ist die variable $zeit jede sekunde "!=" $zeit oder nicht?

also idee dahinter ist halt das er diese if anweisung jede sekunde ausführt und sekunde um 1 subtrahiert. solange bis sekunde 0 ist um dann einmal die minute zu subtrahieren...usw.

und die variablen will ich nach jedem durchgang einmal ausgeben damit man die halt sieht. ich hab aber wirklich keine ahnung :( (wie du ja grad festgestellt hast )

//edit:

es sollen halt 24h runtergzählt werden...

//edit

wäre

PHP:
if ($zeit != time());
erlaubt und in ordnung?
 
Zuletzt bearbeitet:

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Der haken dabei ist, dass php serverseitig arbeitet.
Du würdest also, selbst wenn dieses script mal lauffähig sein sollte aller 1 Sekunde die Ausgabe aktualisieren müssen, damit er stets die aktuelle Zeit anzeigt, sprich sekündlich das script neuladen?
Das kanns nicht sein, oder?

Brauchst Du denn überhaupt wirklich einen Countdown?
Reicht es denn nicht wenn Deine User einfach die Endzeit, wann also der Server wieder inaktiv ist, angezeigt bekommen?
 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
das kann ja varieren. deswegen soll es eben live angezeigt werden :).

ok das mit serverseitig hab ich auch schon gelesen. java ist da vielleicht die bessere alternative. aber die ganzen scripte die ich da finde sind alle von zeitangaben abhängig. ich will einfach nur ein countdown der 24h rückwärts runterzählt. kann ja nicht sein das ich der erste mensch auf erden bin der das braucht :freak:
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Hier ein php-Countdown-Script auf die Schnelle.
Das Script zeigt Dir bei aktualisieren der html-seite die verbleibende Zeit tage, stunden minuten, usw. bis Zieldatum an.
Für Fehler garantiere ich nicht.

PHP:
function Countdown($Datum){
# $Datum im Format: "01.01.2006 00:00:00";
 
$Zieldatum = mktime(substr($Datum, 11, 2), substr($Datum, 14, 2), substr($Datum, 17, 2), substr($Datum, 3, 2), substr($Datum, 0, 2), substr($Datum, 6, 4));
 
if($Zieldatum >= time()){
 
$Differenz = $Zieldatum-time();
$Zeit=array();
$Zeit['d'] = floor($Differenz/86400);
$Rest = $Differenz-($Zeit['d']*86400);
$Zeit['H'] = floor($Rest/3600);
$Rest = $Rest-($Zeit['H']*3600);
$Zeit['i'] = floor($Rest/60);
$Rest = $Rest-($Zeit['i']*60);
 
$Zeit= 
($Zeit['d'] > 0 ? $Zeit['d']." Tag".($Zeit['d'] > 1 ? "e" : '') : '').
($Zeit['d'] > 0 && $Zeit['H'] > 0 && $Zeit['i'] < 1 ? " und " : '').
($Zeit['d'] > 0 && $Zeit['H'] > 0 && $Zeit['i'] > 0 ? ", " : '').
($Zeit['H'] > 0 ? $Zeit['H']." Stunde".($Zeit['H'] > 1 ? "n" : '') : ''). 
(($Zeit['d'] > 0 || $Zeit['H'] > 0) && $Zeit['i'] > 0 ? " und " : '').
($Zeit['i'] > 0 ? $Zeit['i']." Minute".($Zeit['i'] > 1 ? "n" : '') : '').
($Rest > 0 ? " und ".$Rest." Sekunde".($Rest > 1 ? "n" : '') : '');
}
else{
return 'Juhu ich bin inaktiv';
} 
 
return $Zeit;
}
 
echo Countdown('01.01.2006 00:00:00'); # Zieldatum
Die Endzeit musste natürlich regelmässig manuell eintragen, gleich nach Serverneustart.
 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
genau solche skripte hab ich, wie oben erwähnt, schon gefunden. aber das bringt mir nichts?!? oder kann man das so ändern das es von alleine 24h runterzählt?
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Wie ich schon sagte. Du müsstest irgendworan die Server-Startzeit erkennen/ auslesen und dann anhand der uptime-dauer die Endzeit berechnen lassen.
Wo wir wieder am Anfang wären. ;)

Denn hellsehen, kann noch kein Computer. ;)

Achso das script zählt ja von alleine runter. Musst halt nur die Endzeit immer vorgeben.
 
Zuletzt bearbeitet:

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
mhh ok. Dann muss ich weiter nach einer Lösung suchen.

Danke für deine Hilfe Relict ;)
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Hast Du denn nicht irgendeine log.Datei, die Du auslesen kannst oder das Dateidatum entnehmen kannst?

Auf jedenfall brauchst du mindstens 1 feste Variable/ Konstante.
Ausschliesslich nur mit Unbekannten kann auch kein Computer rechnen.

Naja wie auch immer. Bitte Bitte keine Ursache. :D
 

kalleberlin

Lieutenant
Ersteller dieses Themas
Dabei seit
Feb. 2005
Beiträge
851
ok. was lässt sich machen wenn ich z.B, ein logfile hätte, wo der Zustand meiner Verbindung drin steht - also 0 bzw. 1?
 

Relict

Admiral
Dabei seit
Juni 2005
Beiträge
7.412
Nichts, Du brauchst eine Uhrzeit besser gesagt die Startzeit.

Wie gesagt eventuell anhand des Dateidatums.

Schau Dir mal folgende Funktionen an:
http://de3.php.net/manual/de/function.filemtime.php


Nur mit 0 und 1 kannste maximal anzeigen, ob server online oder nicht, wäre bisserl sinnlos, da wenn du nicht online bist, wohl auch nix angezeigt wird, oder?. :D
 
Zuletzt bearbeitet:
Top