smnhooi’s blog

下手な殴り書きをひたすら書いていきます。文章がお見苦しかったらすみません。

ホームページを作ってNASの立ち上げ・終了をできるようにする

まずはホームページを作ります。

index.html

<html>
    <meta http-equiv="content-type" charset="utf-8">
    <title>
        Home Controller
    </title>
    <body>
        <a href="nas_launch.php">NAS起動</a><br>
        
        <a href="nas_poweroff.php">NAS終了</a>
    </body>
</html>


起動するにはWOLで起動させます。
nas_launch.php

<html>
    <meta http-equiv="content-type" charset="utf-8">
    <title>
        Home Controller
    </title>
    <body>
        <?php
            exec("../shells/nas_launch.sh");
        ?>
        WOLパケットを送信しました。<br>
        <a href="./">戻る</a>
    </body>
</html>

スクリプトを作ります。

#! /bin/bash
wakeonlan [MAC Addr]

ファイルのアクセス権を755にしておきます。
実行するのはwww-dataです。


終了する場合は少し大変です。
まずSSHをノンパスワードでログインできるようにします。

cd /var/www
mkdir .ssh
sudo chown .ssh www-data
cd .ssh

sudo -u www-data ssh-keygen -t rsa

sudo scp id_rsa.pub [nas_username]@[ip_addr]:/home/[nas_username]

ここで、ssh-keygenはパスワードを入れずにひたすらエンターを押します。
ここでパスワードを入れてしまうとログイン時に毎回聞かれることになります。

NAS側では

cd ~/
mkdir .ssh

chmod 700  id_rsa.pub 

cp id_rsa.pub .ssh/authorized_keys2

service sshd restart

これでwww-dataからパス無しでNASにログインできるようになります。

<html>
    <meta http-equiv="content-type" charset="utf-8">
    <title>
        Home Controller
    </title>
    <body>
        <?php
            echo exec("../shells/nas_poweroff.sh");
        ?>
        NASを終了させます。<br>
        <a href="./">戻る</a>
    </body>
</html>

nas_poweroff.shは以下。

#! /bin/bash
ssh [username]@[ip_addr] sudo poweroff

すんなり終了してくれました。

これで少しは便利になります。