スクリプト書く知識0で上手いこと実装できたら自作ファイルサーバーにすると決めました。
・外せない機能
ZFSのpoolに異常が発生したらメールアラートを飛ばす。
定期的にscrubをかける。
定期的にsnapshotをとる。
このへんが是非ほしい。
とりあえずVirtualBoxにFreeNASをインストールして上記機能を搭載できるか実験してみます。
まずpoolの異常発生でのメールアラート。検索しまくってみつけたのがここ。
ここの投稿に返信している、torf74氏のスクリプトを試してみることにする。
zpoolnotice.sh
zpoolstatus.sh
異常発生時にメールアラート飛ばすスクリプトと、定期的にpoolの状態をメールするスクリプト。
両方いれてみました。使用方法まで丁寧に書いてあって非情に分かりやすいです。
二つのスクリプトを適当に /mnt/tank/bin とかに保存します。
cronの設定ページに行き適当にスケジュールを設定して
bash /mnt/tank/bin/zpoolnotice.sh
と記述して保存。今すぐ実行ボタンを押します。(メール設定が済んでいるのが大前提。)
poolに異常は発生していないのでメールは来ません。
ZFS設定ページに移動してpoolのHDを一つOFFLINEにして異常を発生させます。
もう一度cronのページに行き今すぐ実行ボタンを押します。
ばっちりメールが届きました。おー良い感じ。
zpoolstatus.shも同様に設定し問題なく動作を確認。
定期的にscrubするスクリプトもここで公開されてました。
さっきと同様の手順でばっちり動作を確認。
さらにここで定期的にsnapshotとるスクリプトがあるんですが
weeklyは問題なく動作するんですがdailyとhourlyがどうも上手く動かない・・・。
むう・・・
書いてあるスクリプトの構文を適当に検索しまくって、スクリプト知識0であれこれ調べた結果、
zfs snapshot $1@daily.`date "+%a"`
ここの `date "+%a"` は日付や時間を取得する一般的な記述のようだ・・・
%a は曜日を取得するみたい。唯一上手く動いたweeklyのスクリプトには使われていないので、この辺が怪しい・・・・・・気がする。
でもどうすればいいかはよくわからん・・・。
といったところで今日はもう疲れたのでこの辺で終了。
0 件のコメント:
コメントを投稿