事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
リモートのウェブブラウザからCentOSサーバーの電源を切るエントリの続編、というか、ちょい改訂です。
前回ので問題がある訳ではないですけど…

続 CentOS6.0 自動電源OFF その3で、ローカルで作業をしているときは自動で電源を切らないようにしたので、同様に、apache userからも電源が切れないようにします。

というわけで、変更点は実際に電源を切るスクリプトを走らせているphphalt.phpだけです。
エンコードはUTF-8
→phpファイル phphalt2.txt
 (使うときはファイル名をphphalt.phpに)

<html>
<head>
<MEtA http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="15;URL=http:./">
<?php
if(isset($_POST['submit']))
//if submit has been pressed
{
#ログファイル名
$log="/home/share/log/shutdown.log";
#remoteshutdown.phpより優先すべきシェルスクリプト名
$override_exec_file="backup.sh";

#ローカルでログインがないとき
exec("/usr/bin/who | grep tty",$tty);
if(empty($tty)){
#優先すべきスクリプトが走ってないとき
exec("/usr/bin/pgrep -f $override_exec_file",$pid);
if(empty($pid)){
#シャットダウン ログかけるかな?
exec("sudo /sbin/shutdown -h now 2>&1");
$message="<<<<<<<<<< ".date("Y/m/d H:i:s")." Done Shutdown by Apache >>>>>>>>>>";
}
else{
$message="/// Another script is running. Shutdown was suspended. ///";
exec('wall "
###############################
Another script is running.
Shutdown was suspended.
###############################"');
}
}
else{
$message="/// tty user is logged on. Shutdown was suspended. ///";
exec('wall "
###############################
tty user is logged on.
Shutdown was suspended.
###############################"');
}
#HTML
echo('<title>'.$message.'</title>
</head>
<body>'
.$message.'<br>
15秒後にHomeに戻ります。<br>
サーバーがシャットダウンしてる場合、接続がリセットされます。
');
#ログ書き出し
$fp = fopen($log, "a"); #a=追記モード
fwrite($fp, $message);
fclose($fp);
}
php?>

</body>
</html>


まぁ、phpファイルを入れ替えるだけです。

何やってるかは、phpファイルを見てください。(ぉぃ
スポンサーサイト

PageTop

コメント

 ※
 ※
管理者にだけ表示を許可する
  ※ 必須項目です

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。