ethOS自動再起動・監視作業を効率化2|YUJI HOSAKA BLOG

ethOS自動再起動

先日、前回のやり方で監視するのは微妙な部分があるということ、jsonを使ったほうがいいんじゃないかということにも触れましたね。

そこで、第2弾でいろいろやってみまたのでご紹介させていただきます。

以前のやり方とは違い、このRIG状況の値から動きをチェックすることにしました。

どの値を監視するかということですが、ここではRIGの状態を表示している「a」の部分を監視することにしました。

ここは正常にマイニングされていると何も表示されていませんが、値としては「mining」の値を持っています。

 

では、いよいよどうするかということですが、

【事前準備】

1.rig_reboot.shというファイルを作成します。←RIGの状態を監視し、再起動するためのファイル

※ファイル名はなんでもよいのですがここでこのファイル名にしました。

ファイル作成にはethOSにあるテキストエディタ(Leafpad)やviコマンドなどで作成してください。

 

2.jqコマンドが使えるよう下記のコマンドでethOSにインストールする
sudo curl -o /usr/local/bin/jq -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 && sudo chmod +x /usr/local/bin/jq

 

【自動再起動のプログラム作成】

先ほど作ったrig_reboot.shに下記の内容を書き込んで保存します。

↓↓↓ここから↓↓↓

#!/bin/bash

#————————————

loop=1;

start_time=300s;

interval=60s;

wait_taime=5s;

good_rig1=”mining”;

good_rig2=”just_booted”;

jsondata=”http://*****.ethosdistro.com/?json=yes” ←*****はRIGを監視画面と同じものを入れる

#—起動後300秒待機—————–

for i in $loop

do

sleep $start_time ←ここで300秒待機する設定をしているのは起動してすぐはステータスが”mining”にならないためです。

done

#—RIGに異常が出るまで監視——-

while :

do

sleep $interval ←60秒毎に監視

 

json_response=$(curl -s $jsondata) ←APIからデータを抽出

rig_condition= echo $json_response | jq -r ‘.rigs .”*****” .condition’ ←必要な部分を抜き出す*****にはRIGネームを入れる

if [ “$rig_condition”=$good_rig1 ]; then

echo -n $rig_condition ←RGI状態を表示

elif [ “$rig_condition”=$good_rig2 ]; then

echo -n $rig_condition ←RGI状態を表示

else

echo -n $rig_condition ←RGI状態を表示

minestop ←RIGを停止させる

sleep $wait_time ←5秒待機

r ←再起動する

fi

done

 

ここまで記述したら保存します。

 

【ethOS起動時に自動実行するための設定をする】

起動後自動的にこのシェルスクリプトを実行するために同じフォルダ内(/home/ethos)にあるcustom.sh

/etc/rc.localにbash rig_reboot.shを書き加えます。

rc.localのパーミッションの関係で書き込みが出来なければ下記のコマンドでパーミッションを変更する

chmod 777 rc.local

これはセキュリティ的によくないとおもうので、あとから読み込み専用に変更したほうがよいでしょう。

ethOS自動再起動

ethOS自動再起動

 

あとは、再起動すれば自動監視、自動再起動されるようになるはずです。

もっと良い方法などあるかもしれませんが、私はプログラマーというわけでもないのでjsonからshellへの値の引き渡しなどがわからなかったためてこずってしまいましたが、お役に立てたらうれしいです。

質問などLINE@からも受付ています。

 

 

↓↓↓LINE@お友達登録はこちら↓↓↓

関連記事

アーカイブ

ページ上部へ戻る