選択定年生活記

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

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

FreeNasで電源のオン・オフをコントロールする

2016-12-19 | 選択定年生活
NASは本来、24時間稼働させるものとは言うものの、電気代が惜しいので、電源のオン・オフはやっぱりコントロールしたいもの。

電源をオンにするのは、メインマシンからWOLさせてやれば良い。

電源をオフにするには、NAS側でクロンジョブを実行して終了条件をチェックすればよい。
メインマシンにPINGを送って、メインマシンが停止していたらNASも停止する。
CIFSの共有フォルダに「shutdown.ini 」というファイル名のファイルがあればNASを停止する。
(メインマシンが稼働していても、NASを終了させたい場合)
ただ、スクラブ中に終了しては困るので、スクラブの実行もクロンジョブで行い、スクラブが終了するまでNASを停止させない。
CIFSの共有フォルダに「scubstart.ini」というファイル名のファイルがあればスクラブを開始する。
CIFSの共有フォルダに「scrubing.ini」というファイル名のファイルがあればスクラブの状態を監視する。
スクラブが終わるまでは電源をオフにしない。

環境依存の設定データは変数に格納して指定している。
メインマシンのIPアドレス
CIFS共有フォルダの場所 /mnt/zsf2/shutdown/
スクラブするzpoolのデータセット名 zsf1、zsf2

-- ファイル名: onoffcheck3---------------------------------------------------------

#!/bin/bash

chkping() {
echo -e "\nPing Check" >> $flnout
ping -c 1 $1 > null
if [ $? = 0 ];
then
x=0
echo -e "\n $1 Active" >> $flnout
else
echo -e "\n $1 Negative" >> $flnout
fi;
}

chkini() {

if [ -e $fln ];
then
echo -e "\n $fln Exist" >> $flnout
x=$y
else
echo -e "\n $fln Not Exist" >> $flnout
fi;
}

chksub() {
chkping $pcip1
#
echo -e "\nStatus Check" >> $flnout
y=99
fln=${cifsdir}shutdown.ini
chkini
#
y=20
fln=${cifsdir}scrubing.ini
chkini
#
y=10
fln=${cifsdir}scrubstart.ini
chkini
}
chkscrubstart() {
zpool scrub $1
echo -e "\n scrub $1 start" >> $flnout
}

scrubstart() {
chkscrubstart $zpoolrs1
chkscrubstart $zpoolrs2
rm -f ${cifsdir}scrubstart.ini
}
chkchkscrub() {
zpool status -v $1 | grep -qsE "scan: scrub in progress"
if [ $? -eq 0 ];
then
z=20
echo -e "\n scrub $1 Ongoing Process" >> $flnout
else
echo -e "\n scrub $1 Terminate the Processing" >> $flnout
fi;
}
chkscrub() {
z=0
chkchkscrub $zpoolrs1
chkchkscrub $zpoolrs2
if [ $z = 0 ];
then
echo -e "\n scrub finished" >> $flnout
rm -f ${cifsdir}scrubing.ini
else
echo -e "\n scrub not finished" >> $flnout
fi;
}
#
####################
# main #
####################
# Environment dependent Constant
pcip1='192.168.0.***'
cifsdir='/mnt/zsf2/shutdown/'
flnout=${cifsdir}onoffcheck3.log
zpoolrs1='zsf1'
zpoolrs2='zsf2'
#
x=99
echo -e "OnOffCheck3" > $flnout
date >> $flnout
chksub
echo -e "\n1st Check" >> $flnout
if [ $x = 99 ];
then
echo -e "\n Continue to 2ndCheck" >> $flnout
else
echo -e "\n Continue to Run" >> $flnout

#
if [ $x = 10 ];
then
scrubstart
exit 0
fi;
#
if [ $x = 20 ];
then
chkscrub
exit 0
fi;
#
exit 0
fi;
############
# 2ndcheck #
############
sleep 600
chksub
echo -e "\n2nd Check" >> $flnout
if [ $x = 0 ];
then
echo -e "\n Continue to Run" >> $flnout
exit 0
else
echo -e "\n Finish Off" >> $flnout
rm -f ${cifsdir}shutdown.ini
shutdown -p now
fi;


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


スクリプトを Cron Jobs に登録する。







ジャンル:
ウェブログ
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« FreeNAS9.10 で hp MicroServ... | トップ | FreeNasのスクラブをコントロ... »
最近の画像もっと見る

コメントを投稿

選択定年生活」カテゴリの最新記事

関連するみんなの記事

トラックバック

この記事のトラックバック  Ping-URL