Raspberry Pi3 の温度とHDD容量などを
定期的に監視させたくて色々と調査した所
こちらのサイトに良い方法があったので使用する事にしました。
事前準備
①.sendmail 導入
②.PHP 導入
③.check_server.php の作成
check_server.php の作成方法
<?php
$SERVER_IP = 'サーバーのIPアドレス';
$URL = 'ホームページのアドレス情報';
$MAIL_TO = 'メールアドレス';
$MAIL_FROM = 'RPi';
//pingチェック
$ping_command_str = "ping -c 3 -w 5 $SERVER_IP";
if (!strstr(`$ping_command_str`, '100% packet loss')) {
$result = "$SERVER_IP ping ok\n";
} else {
$result = "$SERVER_IP ping ng\n";
}
//webアクセスチェック
if ($res = file_get_contents($URL)) {
$result .= "{$URL} access ok\n";
} else {
$result .= "{$URL} access ng\n";
}
//ハードディスク容量チェック
$current_space = intval(disk_free_space('/') / 1024 / 1024);
$total_space = intval(disk_total_space('/') / 1024 / 1024);
$result .= 'disk free: '. $current_space .'MB/'. $total_space ."MB\n";
//メモリ使用量チェック
$memory_result = explode("\n", `free -m`);
$memory_pattern = "#^-/\+ buffers/cache: +([0-9]+) +([0-9]+)$#";
preg_match($memory_pattern, $memory_result[2], $memory_info);
$result .= 'used memory: '. $memory_info[1] .'MB/'. intval($memory_info[1] + $memory_info[2]) ."MB\n";
//温度チェック
$temperature_result = shell_exec('vcgencmd measure_temp');
$result .= 'temperature: '. $temperature_result."℃\n";
//結果をメール送信
$mail_header = "From: $MAIL_FROM";
mail($MAIL_TO, 'check result', $result, $mail_header);
?>
crontab の設定
①.vi /etc/crontab
crontab を編集します。
*/15 * * * * root /usr/bin/php /tmp/check_server.php
15分間隔でメールを送信する設定です。
