Overclocking
@forsborsСкрипт первый:
#!/bin/bash container_name="clore-default-" command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять. command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять. server_name="Rig10" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять. 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
Срипт второй:
#!/bin/bash container_name="clore-default-" command_on_start="nvtool --setclocks 1680 --setcoreoffset 210 --setmem 810 --setmemoffset 0 --setpl 380" # Тут меняй разгон, который быдет применяться во время майнинга в простое, ковычки оставь на месте, этот комент можно не удалять. command_on_stop="nvtool --setclocks 0 --setcoreoffset 0 --setmem 0 --setmemoffset 0 --setpl 0" # Тут ничего менять не надо, это разгон, который будет применяться во время аренды, можно установить PL в допустимых 10-15%, 0 значит будет применено стоковое значение, т.е. без разгона, этот комент можно не удалять. server_name="Rig10" # Тут меняй имя сервера, ковычки оставь на месте, этот комент можно не удалять. 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
Первый скрипт умеют применять нужный вам разгон во время майнинга в простое, и сбрасывать ранее примененный разгон в стоковое значение если риг будет взят в аренду. При прекращении аренды снова применит заданный в скрипте разгон для майнинга в простое, все автоматом, достаточно только запустить скрипт, с заданным вами разгоном.
Второй скрипт умееет все тоже самое, только еще при этом шлет оповещение в телеграм.
ВАЖНО! В данных скриптах для применения разгона используется nvtool? работает только в hive, в убунту этой утилиты нет, надо использовать nvidia-smi.
Теперь что с этим всем добром делать.
Идем к телеграм боту, с помощью него создаем себе телеграм бота. После создания получаем token to access the HTTP API, его надо будет вставить в указанное место в крипте.
Идем к телеграм боту, он выдаст ID вашего чата, его надо будет вставить в указанное место в крипте.
На своем сервере создаем файл oc.sh и открываем в редакторе:
sudo nano /home/user/oc.sh
Вставляем уже отредактированный скрипт:
Сохраняем Ctrl+S и выходим Ctrl+X.
Даем права на выполнение:
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'
Сохраняем, выходим.
Изменить разгон можно следующим образом, даем команду
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
Таким образом завершать работу скрипта для внесения правок нет необходимости.