明日も楽をするために

めんどくさがりなITエンジニアが書くメモ帳

自宅サーバー自動起動用シェルスクリプトメモ

サーバーの自動起動用に

/sys/class/rtc/rtc0/wakealarm

に時間をタイムスタンプで指定する。
上書きする際は0で初期化しないと書き換えられない?

crontabに設定してシェル実行後に起動する日程を設定して、そのあとでシャットダウン

例:
0 4 * * * sh /site/auto_power.sh

rootで実行しないとシャットダウンコマンドが動かないので注意

#!/bin/sh

#初期化
echo 0 > /sys/class/rtc/rtc0/wakealarm

#該当の時間が何曜日か取得する
day_of_week=`date -d +1hour +%w`
if [ $day_of_week -eq 6 ]; then
    #土曜日
    #4時設定で14起動
    echo `date +%s -d +10hour` > /sys/class/rtc/rtc0/wakealarm
elif [ $day_of_week -eq 0 ]; then
    #日曜日
    #4時設定で14起動
    echo `date +%s -d +10hour` > /sys/class/rtc/rtc0/wakealarm
else
    #4時設定で18起動
    echo `date +%s -d +14hour` > /sys/class/rtc/rtc0/wakealarm
fi

#設定内容の表示
#cat /proc/driver/rtc
/sbin/shutdown -h now