Разгон в простое от аренды

Разгон в простое от аренды

Кредитный майнинг

СОДЕРЖАНИЕ ИНСТРУКЦИИ:

  1. Скрипт 1. Без уведомлений в телеграм
  2. Скрипт 2. С уведомлениями в телеграм
  3. Описание скриптов
  4. Настройка
  5. Что делать, если перестаёт применяться разгон после отключения питания рига


С помощью скриптов из этой инструкции на clore можно применять разгон во время майнинга в простое от аренды и автоматически сбрасывать его, когда риг возьмут в аренду. Есть два вида скриптов: без уведомлений в телеграм и с уведомлениями в телеграм.

ВАЖНО! Для применения разгона используется nvtool. Работает только в HiveOS. В Ubuntu этой утилиты нет, надо использовать nvidia-smi.


Скрипт 1 (без уведомлений в телеграм):

#!/bin/bash

container_name="clore-default-"
command_on_start="nvtool --setclocks 2590 --setcoreoffset 300 --setmem 810 --setmemoffset 0 --setpl 0" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять.
command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, но при желании можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять.

server_name="Rig3" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять.

container_started=false
container_stopped=true

while true; do
  container_id=$(docker ps --format "{{.Names}} {{.ID}}" | grep "$container_name" | awk '{print $2}')
  if [ -n "$container_id" ]; then
    # Контейнер запущен
    echo "$server_name Mining run, OC run, Rent stop"
    if ! $container_started; then
      eval "$command_on_start"
      container_started=true
      container_stopped=false
    fi
  else
    # Контейнер не запущен
    echo "$server_name Mining stop, OC stop, Rent start"
    if ! $container_stopped; then
      eval "$command_on_stop"
      container_stopped=true
      container_started=false
    fi
  fi
  sleep 30
done


Скрипт 2 (с уведомлениями в телеграм):

#!/bin/bash

container_name="clore-default-"
command_on_start="nvtool --setclocks 2590 --setcoreoffset 300 --setmem 810 --setmemoffset 0 --setpl 0" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять.
command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, но при желании можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять.

server_name="Rig3" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять.

container_started=false
container_stopped=true

bot_token="ВАШ_ТОКЕН_ТЕЛЕГРАМ_БОТА" # Сюда вставляй токен от телеграм бота, ковычки оставь на месте, этот комент можно не удалять.
chat_id="ВАШ_ЧАТ_ID" # Сюда вставляй свой чат ID, ковычки оставь на месте, этот комент можно не удалять.

# Функция для отправки сообщения в телеграм
send_telegram_message() {
  message="$1"
  curl -s -X POST https://api.telegram.org/bot$bot_token/sendMessage -d chat_id=$chat_id -d text="$message" > /dev/null
}

while true; do
  container_id=$(docker ps --format "{{.Names}} {{.ID}}" | grep "$container_name" | awk '{print $2}')
  if [ -n "$container_id" ]; then
    # Контейнер запущен
    if ! $container_started; then
      message="$server_name Mining run, OC run, Rent stop"
      echo "$message"
      send_telegram_message "$message"
      eval "$command_on_start"
      container_started=true
      container_stopped=false
    fi
    message="$server_name Mining run, OC run, Rent stop"
    echo "$message"
  else
    # Контейнер не запущен
    if ! $container_stopped; then
      message="$server_name Mining stop, OC stop, Rent start"
      echo "$message"
      send_telegram_message "$message"
      eval "$command_on_stop"
      container_stopped=true
      container_started=false
    fi
    message="$server_name Mining stop, OC stop, Rent start"
    echo "$message"
  fi
  sleep 30
done


Описание скриптов

Первый скрипт применяет нужный вам разгон во время майнинга в простое, и сбрасывать ранее примененный разгон в стоковое значение, когда риг будет взят в аренду. При прекращении аренды снова применит заданный в скрипте разгон для майнинга в простое.

Второй скрипт делает все тоже самое, только еще при этом шлет уведомления в телеграм.


Настройка

Если будем использовать второй вариант с уведомлениями в телеграм, то выполняем шаг 1 и шаг 2. В случае первого скрипта без уведомлений, начинаем делать с шага 3.

1) Идем к телеграм боту, с помощью него создаем себе телеграм бота. После создания получаем token to access the HTTP API, его надо будет вставить в указанное место во втором скрипте.

2) Идем к телеграм боту, он выдаст ID вашего чата, его надо будет вставить в указанное место во втором скрипте.

3) Создадим файл oc.sh

Открываем HiveShell или WebShell и отправляем команду:

sudo nano /home/user/oc.sh

Откроется редактор. Вставляем уже отредактированный скрипт (первый или второй)

Жмём Ctrl+X --> Y --> Enter

Даем права на выполнение:

chmod +x /home/user/oc.sh

Запускаем:
screen -S oc /home/user/oc.sh

Чтобы выйти Ctrl+a+d, скрипт при этом продолжит работу. Чтобы завершить работу скрипта:

screen -S oc -X quit

Добавляем скрипт в автозагрузку при старте системы:
crontab -e

в самом низу добавляем строчки:

# Автозапуск OC
@reboot sleep 120 && screen -dmS oc /bin/bash -c '/home/user/oc.sh; exec bash'
ВАЖНО! После того как вставили строчки с автозапуском нажать Enter, чтобы курсор перешёл на след. строку, иначе будет ругаться и не создаст крон для автозапуска.

Жмём F2 --> Yes -->F10

Чтобы изменить разгон отправляем команду:

sed -i '/^command_on_start=/ s|command_on_start=".*"|command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380"|' /home/user/oc.sh

Предварительно изменив значения разгона на какой требуется. В результате в файле oc.sh будет заменена соответствующая строка без необходимости открывать и редактировать файл. И далее перезапускаем скрипт командой:

source /home/user/oc.sh > /dev/null 2>&1

Таким образом завершать работу скрипта для внесения правок нет необходимости.


Что делать, если перестаёт применяться разгон после отключения питания рига.


Открываем HiveShell и пишем команду:

mc

Откроется "файловый менеджер".


Далее нам нужно перейти в корневую папку. Для этого с помощью стрелочек на клавиатуре выбираем / .. и жмём Enter, снова выбираем / .. и жмём Enter. Теперь мы находимся в корневой папке:

Далее идём по пути:

/hive/etc/


Ищем файлик crontab.root, стрелочками наводим на него и жмём f4


Откроется редактирование файла. Нам нужно в самый низ дописать:

# Автозапуск OC
@reboot sleep 120 && screen -dmS oc /bin/bash -c '/home/user/oc.sh; exec bash'


После того как дописали, жмём f2 —>yes—>f10.


Тем самым мы добавили наш скрипт с разгоном в автозагрузку. Теперь даже после отключения питания он будет стартовать. Проблема почти решена. Осталось только перезагрузить риг 2 раза.


ВАЖНО!!! Перезагрузить именно два раза.

Report Page