Permalänk
Medlem

Uptime script

Jag har ett php script som visar hur länge servern har varit uppe. Kan man inte med hjälp av mysql göra så att man kan se högsta respektive lägsta uptime på servern?
Man klickar på en flik som heter "högsta" respektive "lägsta" för att se top och lägsta tiden servern varit uppe?

Jag hade inte tänkt använda detta script för att skryta om hur länge min server varit uppe eller så som andra tror utan jag ser detta bara som en kul grej.

Vill även påpeka att jag inte kan php och mysql så jätte bra.

Visa signatur

Workstation: Intel Core 2 Duo E6420 | 4GB DDR2 PC5300 | 8800GTS 320Mb | 500Gb Sata2 |
WD My Book Essential Edition 500Gb |

Permalänk
Medlem

Sätt ett värde på $cur_uptime som ditt skript från fram för nurvarande uptime.
<?php
$cur_uptime= "asdf";
$sql = "select uptime from table";
mysql_fetch_array($row = mysql_query($sql)) {
$mysql_uptime = $row['uptime'];
}
//cat /proc/uptime
if($cur_uptime > $mysql_uptime) {
$sql = "update table set uptime='$cur_uptime'";
mysql_query($sql);
echo "Max: ".$cur_uptime."\n";
echo "Current: ".$cur_uptime;
}
else {
echo "Max: ".$mysql_uptime."\n";
echo "Current: ".$cur_uptime;
}
?>

Rätta mig om jag gör fel, var ett tag sedan jag kodade php.

Visa signatur

Doubleint.com - Webben har aldrig varit enklare.

Timesharing.se - En liten tjänst som löser ett stort problem.

Permalänk
Medlem

förlåt men jag är helt lost =/
Min kod ser ut så här:
<?php
// format the uptime in case the browser doesn't support dhtml/javascript
// static uptime string
function format_uptime($seconds) {
$secs = intval($seconds % 60);
$mins = intval($seconds / 60 % 60);
$hours = intval($seconds / 3600 % 24);
$days = intval($seconds / 86400);

if ($days > 0) {
$uptimeString .= $days;
$uptimeString .= (($days == 1) ? " day" : " days");
}
if ($hours > 0) {
$uptimeString .= (($days > 0) ? ", " : "") . $hours;
$uptimeString .= (($hours == 1) ? " hour" : " hours");
}
if ($mins > 0) {
$uptimeString .= (($days > 0 || $hours > 0) ? ", " : "") . $mins;
$uptimeString .= (($mins == 1) ? " minute" : " minutes");
}
if ($secs > 0) {
$uptimeString .= (($days > 0 || $hours > 0 || $mins > 0) ? ", " : "") . $secs;
$uptimeString .= (($secs == 1) ? " second" : " seconds");
}
return $uptimeString;
}

// read in the uptime (using exec)
$uptime = exec("cat /proc/uptime");
$uptime = split(" ",$uptime);
$uptimeSecs = $uptime[0];

// get the static uptime
$staticUptime = "Server Uptime: ".format_uptime($uptimeSecs);
?>
<html>
<head>
<script language="javascript">
<!--
var upSeconds=<?php echo $uptimeSecs; ?>;
function doUptime() {
var uptimeString = "Server Uptime: ";
var secs = parseInt(upSeconds % 60);
var mins = parseInt(upSeconds / 60 % 60);
var hours = parseInt(upSeconds / 3600 % 24);
var days = parseInt(upSeconds / 86400);
if (days > 0) {
uptimeString += days;
uptimeString += ((days == 1) ? " day" : " days");
}
if (hours > 0) {
uptimeString += ((days > 0) ? ", " : "") + hours;
uptimeString += ((hours == 1) ? " hour" : " hours");
}
if (mins > 0) {
uptimeString += ((days > 0 || hours > 0) ? ", " : "") + mins;
uptimeString += ((mins == 1) ? " minute" : " minutes");
}
if (secs > 0) {
uptimeString += ((days > 0 || hours > 0 || mins > 0) ? ", " : "") + secs;
uptimeString += ((secs == 1) ? " second" : " seconds");
}
var span_el = document.getElementById("uptime");
var replaceWith = document.createTextNode(uptimeString);
span_el.replaceChild(replaceWith, span_el.childNodes[0]);
upSeconds++;
setTimeout("doUptime()",1000);
}
// -->
</script>
</head>
<body onLoad="doUptime();">

<!-- Uses the DIV tag, but SPAN can be used as well -->
<div id="uptime" style="font-weight:bold;"><?php echo $staticUptime; ?></div>

Ser ut som om det är ett javascipt oxå?
Vart ska jag lägga den koden du skrev?
Tacksam för hjälp

Visa signatur

Workstation: Intel Core 2 Duo E6420 | 4GB DDR2 PC5300 | 8800GTS 320Mb | 500Gb Sata2 |
WD My Book Essential Edition 500Gb |

Permalänk
Medlem

Koden bör läggas där uptimen ska skrivas ut. Som du ser innehåller kodsnutten ett par echo's, dvs den skriver ut saker till skärmen.

Ersätt raden:
$cur_uptime= "asdf";
med:
$cur_uptime= $uptimeSecs;

Visa signatur

Doubleint.com - Webben har aldrig varit enklare.

Timesharing.se - En liten tjänst som löser ett stort problem.