HDDが設定温度に達したらシャットダウンするシェルスクリプト

提供: ウィキデュッカ
移動: 案内検索

概要

設定温度(ここでは60度)に達したら、設定したメールアドレス(ここでは [email protected]) に1分後に落としますよ。とメールしてからシャットダウンするもの。

経緯

2011の夏、電力不足でエアコンとかガンガン使うと白い目で見られるので。書いた。

うちの自宅サーバなぞ落ちても誰もこまらないし、主要なもの(この wiki 含め)は大体クラウドに移したので。

もういらないシェルスクリプトだけどせっかく書いたので。

※hddtemp のインストールが必要。


ディレクトリを作成&移動

# mkdir /usr/local/script/tempChecker/
# cd /usr/local/script/tempChecker/

書く

vi tempChecker.sh
#!/bin/sh

LOG="/usr/local/script/tempChecker/Logs/$(date +%y%m%d).log"

Message="System will shutdown after 1 minutes."
MailSubject="tempCheck Failed! [`date \"+%Y/%m/%d %H:%M:%S\"`]"
MailTo="[email protected]"

date "+%y%m%d %H:%M:%S" >> ${LOG}

for x in /dev/sda /dev/sdb
    do
        TEMP=$(/usr/local/sbin/hddtemp $x |awk -F ": " '{print $3}' |awk '{print $1}')

        if [ $TEMP -gt 60 ]
        then
            echo "${x}:${TEMP}:FAILED!! $Message" >> ${LOG}
            # mail alert.
            echo "$Message" | mail -s "$MailSubject" $MailTo

            echo "----------" >> ${LOG}

            # shutdown
            shutdown -h +1
            
            exit 1
        else
            echo "${x}:${TEMP}:OK" >> ${LOG}
        fi
    done

echo "----------" >> ${LOG}

# EOF

cron 登録

5分おきにチェックする。

# HDD tempChecker
 */5 * * * * /usr/local/script/tempChecker/tempChecker.sh


以上。