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分間隔でメールを送信する設定です。