Костыль для 8 эпизода ноды massa

Внимание! Начиная с 12 сезона все версии скрипта до 0.2  перестали работать. Связано это с тем что в 12 эпизоде разработчики требуют пароль для входа в клиент. Скрипт обновлен и теперь он умеет работать с паролем, НО! Теперь пароль к вашему кошельку будет хранится в отдельном файле в открытом виде. И исключительно вам решать нужно ли это вам.
Скрипт следит за неким состоянием ноды — спасибо разработчикам — они теперь сделали возможность быстро это определить.
Каждые пять минут скрипт пытается «потыкать палочкой» в ноду на предмет — а жива ли ты еще моя старушка?
Если ответ положительный — скрипт успокаивается на очередные пять минут. Если со стороны ноды приходит ответ — я померла — то скрипт решает что уже больше ничего не испортит и перезагружает ноду.
Тут следует предупредить что начиная с 8 эпизода разработчики внесли существенное изменение в систему начального bootstrap-а вашей ноды.
Сейчас если вашу ноду забанили на моменте bootstrapа, то бан длится не 15 минут, как раньше, а 24 часа. Это говорит о том что просто перезагрузить ноду у вас уже не получится. Точнее получиться то получится, но желаемого эффекта не принесет.  У вас теперь должен быть собственный список серверов для bootstrapа. Где его брать, и что с ним делать — не в ходит в рамки этой статьи.
Т.е. если у вас стандартный список из 4 серверов по умолчанию — крайне не рекомендую устанавливать данный скрипт

Основной скрипт

(Блок ниже нужно скопировать и вставить сразу весь, в командной строке, не построчно.)
sudo tee $HOME/kostil_massa8.sh > /dev/null <<EOF
#!/bin/sh
#ver.03
#Set variables
catt=/usr/bin/cat
passwd=\$(\$catt \$HOME/massapasswd)
cd \$HOME/massa/massa-client
node=\$(./massa-client -p "\$passwd"  get_status |grep 'Error'|awk '{print \$1}')
if [ -z "\$node" ];then
echo "Ok"> /dev/null
else
/usr/bin/sudo systemctl restart massad
echo \`/bin/date +" %b %d %r" |awk '{print \$2,\$3,\$5}'\` "(Kostil_massa8) Перегрузили ноду" >> /root/rolls.log
fi
EOF

 

Прописываем пароль для доступа к клиенту в отдельный файл
(Блок ниже нужно скопировать и вставить сразу весь, в командной строке, не построчно.)
sudo tee $HOME/massapasswd > /dev/null <<EOF
Вместо этой строчки пишите ваш пароль
EOF

Добавляем задание демону cron на выполнение файла kostil_massa8.sh каждые пять минут
Будем использовать локальный демон. Задание будет находиться в файле kostil_massa8 и располагаться в папке /etc/cron.d/
(Блок ниже нужно скопировать и вставить сразу весь, в командной строке, не построчно.)
printf "SHELL=/bin/bash
*/5 * * * * root /bin/bash \$HOME/kostil_massa8.sh > /dev/null 2>&1
" > /etc/cron.d/kostil_massa8

Файл логов
sudo tee $HOME/rolls.log > /dev/null <<EOF
Лог файл создан удачно.
EOF

Посмотреть последние 50 строк лога
tail -n50 $HOME/rolls.log
(Это общий файл со скриптом Контроль за падением rolls и автоматическая их покупка поэтому в данном файле могут быть и записи от работы этого скрипта тоже)
Очистить содержимое лога
cat /dev/null > $HOME/rolls.log
Не забывайте что это не панацея, а лишь очередной костыль.

Как удалить скрипт:

Удаляем сам скрипт
/usr/bin/rm $HOME/kostil_massa8.sh
Удаляем файл запуска скрипта по времени
/usr/bin/rm /etc/cron.d/kostil_massa8
Удаляем log-файл
/usr/bin/rm $HOME/rolls.log