先日、TS-439ProII+を購入したのだけど、今も割といい感じでNASとしての活躍してくれている。
で、最近Webサイトの開発?やらでローカルにファイルをためるのも微妙になってきたので、ここらでこのTS-439 Pro II+をSubversionサーバにしてファイル管理をしようと思った次第ですまる。
で、以下構築手順。こちらのサイトがすごく参考になりました。
- こちらを参考にSubversionのインストール
# ipkg update # ipkg install svn
- PATHに /opt/bin を追加。ただし、もう追加されているようなら不要。
# export PATH=$PATH:/opt/bin:/opt/sbin
と、これは一時的な設定なので、永続的に設定するには、 /root/.bashrc と /root/.bash_profile に対して上記のパスを通してやる必要がある…と思ったらこの辺は再起動で消えてしまう。僕の環境だと、「/share/HDA_DATA/.qpkg/Optware/Optware.sh」の中に、/etc/profile の末尾に /opt/bin と /opt/sbin のパスが追加するように記述されていた。
- リポジトリの作成*1
- svnserve でSubversionサーバを起動
# svnserve -d -r (リポジトリの位置)
あと、TS-439 Pro II+が起動するたびに毎回svnserveコマンドを叩いてSubversionを起動させるのが面倒なので、svnserveコマンドを起動スクリプトに仕込む。ここが今回のエントリのキモ。
その起動スクリプトを「autorun.sh」という名前で作成して、特定の位置に置くのだけど、これがQNAPのNASの機種によってファイルを置く際にマウントする位置が異なる。*2 *3 *4
参考:Running Your Own Application at Startup
僕の使っている機種はTS-439 Pro II+ Turbo NASなので、autorun.shは /dev/sdx6 をマウントしてファイルを置く。
# mount -t ext2 /dev/sdx6 /tmp/config # vi /tmp/config/autorun.sh (autorun.shを作成する。autorun.shの内容は下記のcatコマンドの出力を参照) # cat /tmp/config/autorun.sh #!/bin/sh (sleep 60; /opt/bin/svnserve -d -r 【リポジトリの位置】) & ※注意:sleepの値が10で試したけど、値が小さすぎて駄目だったので60にしている # chmod +x /tmp/config/autorun.sh # ls -l /tmp/config/autorun.sh -rwxr-xr-x 1 admin administ 67 Oct 29 20:32 /tmp/config/autorun.sh* # umount /tmp/config
chmod +x で実行権限の付与するとこまで忘れずに。
これで再起動しても自動的にSubversionサーバが起動します。
おまけ(Subversionを手動で停止)
Subversionを停止したいときは、psコマンドでプロセスIDを探してkill -TERM で停止させる。
# ps -ef | grep svnserve 20345 admin 560 S grep svnserve 22501 admin 996 S svnserve -d -r 【リポジトリの位置】 # # kill -TERM 22501 # ps -ef | grep svnserve 20414 admin 564 S grep svnserve #