ethOS – automatinių perkrovimų skriptai

Išbandyta su ethOS 1.2.9, 1.3.0 ir 1.3.1 versijomis

0

Investuojant į kriptovaliutų kasimo įrangą dažniausiai yra tikimasi pasyvių pajamų. Kitaip dar galėtume sakyti: „Investavau ir pamiršau“. Tačiau ne retam iš mūsų tenka stebėti ar kasimo įrenginys dirba taip kaip buvo planuota, t.y. ar neatsirado kokia nors nenumatyta klaida, dėl ko viena ar kelios plokštės pradėjo dirbti lėčiau arba net iš viso sustojo. Dažniausiai pastebėję tokią situaciją tiesiog perkrauname kompiuterį ir nieko daugiau nedarę „laukiame“ kito nulūžimo.

Tobulame pasaulyje, tobulai sukonfigūruotame mining rig‘e tokių situacijų nepasitaiko, tačiau realiame pasaulyje… Todėl kad galėtume ramiau gyventi, o kasimo įrenginys dirbtų kiek įmanoma daugiau – siūlome sukonfigūruoti ethOS operacinę sistemą automatiniams perkrovimams.

Perkrovimas nutikus problemai dėl kasimo greičio

Vienas svarbiausių aspektų – pastebėjus sulėtėjusį kasimo greitį kuo greičiau sureaguoti ir perkrauti įrenginį – taip sumažinant neefektyvaus kasimo laiką. Šiam metodui pasidalinsime su Jumis mūsų parašytu skriptu, kuris tikrina vaizdo plokščių greičius – jeigu jis sulėtėja – automatiškai siunčiama komanda perkrauti ethOS. Tikrinimas vyksta kas 15 minučių (kad nuo perkrovimo iki kito tikrinimo visa įranga jau būtų pasileidusi ir pilnai funkcionuotų).

Perkrovimo skript‘as

Žemiau pateiktą tekstą išsaugokite „home“ direktorijoje (toje pačioje kur yra local.conf ir remote.conf) ir pavadinkite „script.sh“:

#!/bin/bash

LOG_FILE=/home/ethos/ecoin.log
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
REQ_GPU_COUNT=$1
MIN_GPU_SPEED=$2
RESTART_ON_ERROR=TRUE
GPU_SPEEDS_RAW=$(php /opt/ethos/lib/ethos-stats-dump.php | grep -P "miner_hashes:")
GPU_SPEEDS_STRING=$(cut -d ":" -f 2 <<< "$GPU_SPEEDS_RAW")
GPU_SPEEDS=' ' read -r -a array <<< $GPU_SPEEDS_STRING
GPU_SPEEDS=(${GPU_SPEEDS_STRING// / })
GPU_COUNT=${#GPU_SPEEDS[@]}
if (( "$REQ_GPU_COUNT" > "$GPU_COUNT" ));
then
        echo "${TIMESTAMP}: Required GPU: $REQ_GPU_COUNT, Accutal GPU: $GPU_COUNT" | tee -a ${LOG_FILE}
        if [ ${RESTART_ON_ERROR} = TRUE ];
        then
                echo "{$TIMESTAMP} Rebooting..." | tee -a ${LOG_FILE}
                /usr/bin/sudo /opt/ethos/bin/r
                exit 9
        fi
else
        echo "${TIMESTAMP}: OK: Required GPU: $REQ_GPU_COUNT, Accutal GPU: $GPU_COUNT" | tee -a ${LOG_FILE}
fi
for i in "${!GPU_SPEEDS[@]}"
do
        GPU_SPEED=$(printf "%.*f\n" 0 ${GPU_SPEEDS[i]})
        if (( "$GPU_SPEED" > "$MIN_GPU_SPEED" ));
        then
                echo "${TIMESTAMP}: OK: GPU$i speed: $GPU_SPEED, minimum required: $MIN_GPU_SPEED" | tee -a ${LOG_FILE}
        else
                echo "${TIMESTAMP}: GPU$i speed: $GPU_SPEED, minimum required: $MIN_GPU_SPEED" | tee -a ${LOG_FILE}
                if [ ${RESTART_ON_ERROR} = TRUE ];
                then
                echo "{$TIMESTAMP} Rebooting..." | tee -a ${LOG_FILE}
                /usr/bin/sudo /opt/ethos/bin/r
                exit 9
                fi
        fi
done

Šis kodas iš esmės atlieka 2 dalykus – patikrina ar veikiančių vaizdo plokščių skaičius ir kasimo greitis atitinka iš anksto numatytą. Šiuos du parametrus reikės įrašyti sekančiame žingsnyje – periodinės užduoties nustatyme kas 15 minučių.

Tikrinimas kas 15 minučių

ethOS reikia nustatyti periodinę užduotį (cronjob), kuriame nurodysime, kad kas 15 minučių paleistų tikrinimą ar viskas veikia taip kaip turėtų.

Į terminalą rašome:sudo crontab -e (jeigu pirmą kartą nustatinėjate periodinę užduotį – jūsų paklaus kokią terminalo redagavimo programą norite naudoti. Pasirinkite „nano“ – ji dažniausiai būna antra). Atsidariusiame redagavimo lange, kaip pirmą eilutę reikia įvesti:

*/15 * * * * bash /home/ethos/script.sh 8 27

Vietoj paskutinių dviejų skaičių (8 ir 27) įveskite sau tinkamas reikšmes! 8 reiškia vaizdo plokščių skaičių, o 27 – minimalų leistiną lėčiausios plokštės greitį. Jeigu kas 15 minučių tikrinant bus pastebėtas mažesnis GPU skaičius arba bent viena plokštė dirbs lėčiau – įrenginys bus perkraunamas.

Įvedus šią eilutę, reiktų išsaugoti ir uždaryti redagavimo langą (tai galite padaryti paspaudę: CTRL + X, tada spauskite „Y“ ir Enter). Pasirodęs pranešimas „crontab: installing new crontab“ informuoja kad viskas sukonfigūruota.

Išbandyti skriptą galite labai paprastai – nustatykite mažesnius „limitus“ ir palaukite 15 minučių – jeigu įrenginys persikrovė – viskas sukonfigūruota tobulai (neužmirškite atkeisti reikšmių!).

Periodinis perkrovimas

Dėl viso pikto, patariame nustatyti dar vieną periodinę užduotį – įrenginio perkrovimą kas savaitę (nenumatytoms padėtims). Šis konfigūravimas daug paprastesnis – turime nustatyti periodinę užduotį, pvz. kiekvieno pirmadienio 8 valandai ryto. Vėlgi, komandinėje eilutėje rašome sudo crontab -e įvedame periodinę užduotį (kitoje eilutėje nei prieš tai įrašyta):

0 8 * * 1 /sbin/shutdown -r now

Kitokio laiko parinkimas

Daugeliui mažiau su linux sistemomis susidūrusiems žmonės labai sunku suprasti tuos skaičiukus ir žvaigždutes esančius prieš komandą periodinėse užduotyse. Tam yra sukurtas „išvertimas į žmonių kalbą“. Jį galite perskaityti čia ir jeigu reikia – pasiredaguoti pagal save.

Sėkmės kasant!

 

PALIKTI KOMENTARĄ

Įrakytike komentarą
Įveskite savo vardą