自作NAS (ubuntu 19.04) を平日の日中のみサスペンドさせる

経緯

自作のファイルサーバがあるのだが、平日の日中は当然使われていない。
にもかかわらずつけっぱなしなのもどうかと思うので、そのあいだサスペンドするようにする

調べたところ、 時間を指定してサスペンド、一定時間後の復帰をさせる rtcwake
定期的にコマンドを実行させるcrontabを使えば行けそうなので設定してみる。

使うコマンド

crontab

以下のコマンドで設定ファイルを開く

$ crontab -e

定期的に繰り返したいコマンドを下記のフォーマットでファイルに追記していく

分 時 日 月 曜日 コマンド

曜日は月曜=1から始まり日曜=7といった感じになっている。

今回は自分が出勤したあとの平日の午前7:30にスリープをさせたいので、以下のようになる。

30 7  * * 1-5 実行したいコマンド

rtcwake

指定した時間サスペンドやシャットダウンをし、その後復帰をさせるというコマンド
-m mem でサスペンド、-sで秒数を指定する。

試しに10秒サスペンドしてみる

$ sudo rtcwake -m mem -s 10
rtcwake: RTC が UTC を使用しているものと仮定します ...
rtcwake: Sat Jul 20 02:23:09 2019
 にある /dev/rtc0 を利用して、 "mem" から復帰します

無事復帰できた。

今回は出勤中の10時間=36000秒スリープさせたいので、以下のようにする。

$ rtcwake -m mem -s 36000

実際の手順

$ sudo crontab -e

rtcwakeはsuperuserから実行する必要があるため、superuserのcrontabに設定をする

以下を追記する

30 7  * * 1-5 rtcwake -m mem -s 36000

結果

様子見中

と言うか平日の出勤中にちゃんとスリープしているか確認する方法を探す必要があるという。

参考

rtcwake – 指定時間になったらスリープ/休止状態/電源OFFから自動的に復帰 Linux
crontab 設定