選択定年生活記

32年間勤めた会社を選択定年で退職
2年間の沈黙を破り場違いの仕事を開始
これって選択定年生活?

FREENASを DLNA サーバにしてみた

2015-01-27 | 選択定年生活
FREENASのプラグインを使って DLNAサーバーを作ってみた。
録り貯めた動画を見るためにね。
ネットには MiniDLNAというプラグインについての記事が多いけれど、FREENASの最新版9.3では推奨されていない。
その代りに、MediaBrowser というプラグインが標準で組み込まれている。





なので、それを導入。難なくインストールし、再起動したら有効になった。

MediaBrowser( ttp://mediabrowser.tv/ ) のホームページを見ると、マルチプラットフォームのフリーソフトで、サーバーの他に、Windows8.1用のクライアントも揃っていたので、メイン機に、MediaBrowserTheater_setup.exe をインストール。
難なく、DLNA経由で見る事が出来ました。
最初、再生の画質が悪く、レレレと思ったけれど、MAX Stryming Bit Rate を 1Mbps から 40Mbpsにしたら高精細に。
FREENASの方にも、ほとんど負荷が掛かっていないしね。

共有フォルダを開いて、個別に閲覧ソフトを立ち上げるのに比べて、手軽に閲覧できるのが良い点かも。

Windows8.1でマザーボードを入れ替えた

2015-01-24 | 選択定年生活
Windows8.1でマザーボードを入れ替えた。
マザーボードの入れ替えに伴って、CPU・メモリも当然に交換。

(入れ替え前)
マザー:ASUS C8HM70/HDMI(オンボードのCPU intel Celeron 847(BGA1023))
メモリ:Silicon Power SP008GBSTU160V22 4GBx2

(入れ替え後)
CPU:Intel BX80646G1840 Celeron G1840
マザー:ASROCK H97M PRO4
メモリ:CFD シー・エフ・デー W3U1600HQ-4GBx2

OS用ドライブ:SAMSUNG SSD840EVOベーシックキット 120GB


交換のメリットとして、チップセットが HM70 から H97 に変わりI/O周りが高速に。
CPUが非力なので、能力は大幅なアップをしてはいないけど、ネット閲覧がメインなのでOK。
コスパでバランスはとれてないですね。

マザーボードの交換(ドライバが違う)なので、OSはクリーンインストールかなと思いつつ駄目もとで、UEFIでドライバを自動インストールした上で、OS用ドライブをそのままで起動してみた。



起動すると黒い画面が出たまま長い時間固まって、やっぱり駄目かと思いつつリセットスイッチで再起動させると、なな!なんという事でしょう、普通に立ち上がってしまいました。

デバイスドライバを見ると、NICとVGAのドライバが入ってなかったので、念のために全部のドライバを再インストールしたら、完璧に動作しました。

昔のOS時代に比べてWindows8.1時代は、もろもろの仕組みが確実に進化しているんですね。

さすがにアクティベーションは、電話サポートが必要でした。

FREENAS をメイン機と連動して稼働させる設定 - Auto Power ON And Auto Shutdown -

2015-01-20 | 選択定年生活
データ保存のために、使っていなかったパソコンでFREENASを稼働させました。
パワーのない旧型機でも大丈夫という触れ込みだったけど、ZSFで稼働させようとすると大量メモリを食うし、のめりこむとすごく高くつくんですね。
のめりこまないけど。
手動で電源のオンオフをするのは面倒くさいので、NAS専用機のようにメイン機と連動する形で運用したいと考えたが、さて、その方法は?

いろいろと難しく考えて、ネットで情報を検索したけれども見つからず、でもあきらめて自力でやってみると簡単にできてしまいました。

1.FREENASの起動

メイン機はWindows8.1。

フリーソフトの Wol.exe を タスクスケジューラで走らせると簡単に実現。

トリガーとして、ログオン時とスリープから復帰時を指定。




操作としてWol.exeを指定。
 プログラム  "D:\MyProgram Files\wol193\wol.exe"
 引数の追加  /open=wol.ini /wake=1 FreeNAS
 開始(オプション)D:\MyProgram Files\wol193

設定内容は、自分の環境にあわせてくださいね。



タスクスケジューラの登録方法を知っていれば簡単ですね。

2.FREENASの停止

難しいかなと思っていたところ意外と簡単。

PuttyでSSH接続してから、root配下に適当にフォルダを作り、そこに実行ファイルを作成。
(追記)SSH接続しなくてもSHELLから操作できます。

実行ファイルの内容は、PINGでメイン機が活きているかどうかをチェック。停止していたらshutdownを走らせる。
これをCron Jobに登録して一定間隔で実行するだけ。

実行ファイルの名前を onoffcheck として、 /root/masa/ 配下に配置。
onoffcheck や masa は任意の名前で良いのはもちろん。

実行ファイルの内容は、*2015/1/30 Function で動作するように改良(末尾に追記)
------------------------------------------------
#!/bin/bash
onoff=0

ping -c 4 192.168.0.2
if [ $? = 0 ]
then
onoff=10
fi

if [ $onoff = 0 ]
then

shutdown -p now
fi

-----------------------------------------------
FreeBSDの場合、-c 4 のオプションがIPアドレスの前に来るので注意。
ちなみに、このオプションは pingチェックを4回繰り返す という意味。

もちろん、192.168.0.2 の部分は、自分のメイン機のIPアドレスで。
メイン機が複数ある場合は、 ping if then fi の部分を複数記述。
関数で記述する方法もあるでしょうが、ベタの方がわかりやすいかも。

Viコマンドなどで作り、chmodで実行権限を付与すればOK。

FREENASへは、WEBから、Tasks->Cron Jobで登録します。

User : root
Commmand : masa/onoffcheck > /dev/null
Every N minute : 5
Every N hour : 1
以下は、全チェック(デフォルト)
これで、5分毎にメイン機のオンオフをチェックする。
余計な画面出力を省くために、 > /den/null を付け加えています。



こんなに簡単だから、だれもネット上に載せていなかったのかも。

(追記)上記の実行ファイルをPytonで記述したコードもありらしい。

FileName shutdown.py で保存。
------------------------------------------------
#!/usr/bin/env python


from subprocess import Popen, PIPE
import os, sys

ip_list = []

###### IP addresses #####
# IP addresses go underneath this line, one on each line in the format: ip_list.append('x.x.x.x')

ip_list.append('192.168.0.2')
ip_list.append('192.168.0.3')


###### End IP addresses

shutdown = True

for ip in ip_list:
cmd = ['/sbin/ping', '-s 0', '-W 1', '-q', '-n' , '-c 1', ip]
p1 = Popen(cmd, stdout=PIPE, stderr=PIPE)
p1.wait()
statusText = p1.communicate()[0].split('\n')[3].strip()
if statusText.find(', 0.0% packet loss') > 0:
shutdown = False

if shutdown:
cmd = ['/sbin/shutdown', '-p', 'now']
p1 = Popen(cmd)
------------------------------------------------
 (引用元)ttp://blog.graceabundant.com/2012/08/24/automatic-shutdownwake-up-on-freenas/



<追記> 2015/1/30

メイン機をリスタートして、UEFIを少しいじくっている間に、すぐにシャットダウンしてしまう事があった。5分ごとのイベントとメイン機の状態が同期していないため。
このため、メイン機が動作していない事を感知した後で2分間待機し、それでもメイン機が動作していなければシャットダウンするように改良した。
これに伴って、PINGチェックの部分は関数で記述した。

実行ファイルの内容は、
------------------------------------------------
#!/bin/bash

chkpings() {

chkping '192.168.0.71' '192.168.0.55'

return 0

}

chkping() {

while [ $# -ne 0 ]
do

ping -c 4 $1
if [ $? = 0 ]
then
onoff=10
fi

shift

done

return 0

}


onoff=0
chkpings

if [ $onoff = 0 ]
then

sleep 120

chkpings

if [ $onoff = 0 ]
then
shutdown -p now
fi
fi

exit 0

-----------------------------------------------