NASのWOLを有効にする。
先日、NASを構築しましたが、これは常にONしておくつもりはありません。どうせ頻繁にアクセスするわけじゃないし、電気代がかかるからです。
しかし、使用するたびに電源を押したり、SSHにログインしてシャットダウンするのは面倒で、そのままだといずれ使わなくなってしまいます。
そこで、ワンクリックでシャットダウンできるところまで簡単にON/OFFできるようにします。
まずはNAS側の環境から。
NASは以下を行いました。
- WOLを有効にする。
- パスなしでpoweroffできるようにする。
まずはWOLを有効にします。
こちらの記事を全面的に参考にさせていただきました。
Ubuntu 20.04 で Wake-On-LAN を有効化する。
ethtoolsというものをインストールするそうです。
sudo ethtools [eth_name]
これでwake-onがgと表示されていればいいのですが、僕の環境ではやっぱり表示されていませんでした。
WOL有効化は毎回の起動時にコマンドを打たないといけないのですが、
はじめはinit.dで起動時のスクリプトを実行しようとしましたがうまくいかず、やむなくsystemDで実行することにしました。
sudo mkdir /etc/wol
次に中に起動用のスクリプトを書きます。
eth_nameの部分はifconfigを打つと出てきます。
#!/bin/sh /sbin/ethtool -s [eth_name] wol g
作成したスクリプトに実行権限をつけます。
次にサービス定義ファイルを/etc/systemd/system/wol.serviceとして作成します。
[Unit] Description=WOL [Service] Type=simple ExecStart=/etc/wol/wol.sh Restart=always [Install] WantedBy=multi-user.target
これでserviceを有効化すれば起動時に実行されます。
sudo systemctl enable wol.service
次にsudo poweroffです。
/etc/sudoersに以下を書き込みます。
#poweroff user_name ALL=NOPASSWD: /sbin/poweroff
これで
sudo poweroff
としてもパスワードを聞かれずに実行することができます。
ちなみにsudoersの中身を間違えるとsudoできなくなってしまいます。visudoを使うのが正攻法らしいのですが、僕はsuでルートに入って編集するようにしました。