自宅サーバーの連続稼働時間表示メモ
自宅のサーバーをWindowsからLinuxへ変更したことによって、当Blogの画面左上の稼働時間表示用のスクリプトを更新しました。
とりあえず今後のために、メモとしても一応書いておきます[ペン/]
飽くまで当Blogの例ですが。
まず、このppblogのindex.phpと同じディレクトリにある
“utils.php”の199行目、
'%_TIME_%' => 'Created in '.BenchMark().' sec.',
(HTML生成時間表示用変数の定義。今はこのパーツは使ってない)
の下に、
'%_UPTIME_%' => getUptime()
という変数を定義。稼働時間ってことでuptimeとする。
次に、同じく”utils.php”の、分かり易く一番下へ下記を追加。
CentOS5の場合
function getUptime() { $uptime = shell_exec('uptime'); $uptime = explode(' up ', $uptime); $uptime = explode(', ', $uptime[1]); $pos = strpos($uptime[0], ' day'); if ($pos === false) { $uptime = $uptime[0]; } else { $days = substr($uptime[0], 0, $pos); $uptime = $uptime[1]; } $pos = strpos($uptime, ':'); $hrs = strpos($uptime, ' hr'); $mins = strpos($uptime, ' min'); $secs = strpos($uptime, ' sec'); if ($pos === false) { if ($hrs === false) { if ($mins === false) { if ($secs === false) { } else { $secs = substr($uptime, 0, $secs); } } else { $mins = substr($uptime, 0, $mins); } } else { $hrs = substr($uptime, 0, $hrs); } } else { $uptime = explode(':', $uptime); $hrs = $uptime[0]; $mins = $uptime[1]; } /* $uptime = shell_exec('uptime'); $uptime = substr(strrchr($uptime, ":"), 2); $uptime = explode(' ', $uptime); */ $str = 'この自宅サーバーは '; if (isset($days)) { $str.= '<span id="uptime_day" style="color: #FFB6C1; font-weight: bold;">' . $days . '</span> 日と '; } if ($hrs !== false) { $str.= '<span id="uptime_hour" style="color: #FFB6C1; font-weight: bold;">' . $hrs . '</span> 時間 '; } if ($mins !== false) { $str.= '<span id="uptime_minute" style="color: #FFB6C1; font-weight: bold;">' . $mins . '</span> 分 '; } if ($secs !== false) { $str.= '<span id="uptime_second" style="color: #FFB6C1; font-weight: bold;">' . $secs . '</span> 秒 '; } $str.= '連続稼働中!'; return $str; }
Windowsの場合
(C:\windows\system32に”uptime.exe”が必須)
こちらでダウンロードできます。
function getUptime() { $uptime = shell_exec('uptime'); $uptime = substr(strrchr($uptime, ":"), 2); $uptime = explode(' ', $uptime); $str = 'この自宅サーバーは'; if ($uptime[0]) { $str.= '<span id="uptime_day" style="color: #00ea1d; font-weight: bold;">' . $uptime[0] . '</span>日と'; } $str.= '<span id="uptime_hour" style="color: #00ea1d; font-weight: bold;">' . $uptime[2] . '</span>時間'; $str.= '<span id="uptime_minute" style="color: #00ea1d; font-weight: bold;">' . $uptime[4] . '</span>ʬ'; $str.= '連続稼働中!'; return $str; }
こんな感じです。
あとは、template.php内の、稼働時間を表示させたい場所で
%_UPTIME_%を使えば表示されます。
このやり方がスマートかどうかは分かりませんが、とりあえずうまく動いてるっぽいです。
一応、稼働時間が1日未満の場合の表示用に分岐も入れてます。