Перейти к содержимому






* * * * * 4 голосов

Автоматизируем перезапуск ethminer eth-proxy

Написано moneymaker, 03 March 2016 · 5659 Просмотров

eth etherium эфир эфириум перезапуск майнер прокси дварф
У майнеров эфира на Дварф пуле периодически возникает проблема реджектов из-за глюков рекомендуемого прокси. Самый простой вариант - перезапуск прокси и майнера. Попытки производить стандартными средствами Windows через bat-файл не принесли положительного результата, видимо taskkill работает слишком жестоко для нежного прокси)))
:Rsstart D:\Mng\Etherium\eth-proxy\eth-proxy.exetimeout /t 3start D:\Mng\Etherium\eth_miner\ethminer -F http://127.0.0.1:8080/R290 -G --opencl-device 1 --opencl-platform 1  --farm-recheck 200timeout 3600taskkill.exe /f /im "ethminer.exe" /Ttimeout 2taskkill.exe /f /im "eth-proxy.exe" /Ttimeout 2goto :Rsexit
Предлагаю другой способ автоматизации этой нехитрой процедуры - пишем небольшой скрипт на Autohotkey.
Протестировано на Win7x64, AHK 111604. Для отправки email используем утилиту mailsend.

Все достаточно просто:

1. Качаем
По ссылке AHK:https://www.autohotkey.com/
По ссылке mailsend: https://github.com/muquit/mailsend/

2. Создаем
EtheriumRestart.ini с указанием путей к майнеру, прокси, строкой запуска майнера, период рестарта в минутах и учетные данные для отправки почты с уведомлением о произведенном перезапуске.

[paths]
path2miner="D:\Mng\Etherium\eth_miner\ethminer.exe"
path2proxy="D:\Mng\Etherium\eth-proxy\eth-proxy.exe"
path2emailer="D:\Mng\Etherium\mailsend.exe "
[additionalParams]
minerParams=" -F http://127.0.0.1:8080/R290 -G --opencl-device 1 --opencl-platform 1 --farm-recheck 200"
restartTimer=10
[emailParams]
eMail="mymail@somemail.ru"
subj="eth_restarter"
user="noreply@mydomain.ru"
from="noreply@mydomain.ru"
pass="mypass"
server="smtp.mydomain.ru"
Port="587"

3. Создаем EtheriumRestart.ahk - файл скрипта, в который помещаем следующий код:
Global path2miner =""Global path2proxy = ""Global path2emailer = ""Global eMail=""Global subj=""Global user=""Global from=""Global pass=""Global server=""Global port=""Global emailFlag = 0		FileDelete, %A_ScriptDir%/EtheriumRestart.log		FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Start EtheriumRestart program ... Success`n, %A_ScriptDir%/EtheriumRestart.log		IniRead,  path2miner, %A_ScriptDir%\EtheriumRestart.ini, paths, path2miner	 	IniRead, path2proxy, %A_ScriptDir%\EtheriumRestart.ini, paths, path2proxy		IniRead, minerParams, %A_ScriptDir%\EtheriumRestart.ini, additionalParams, minerParams		IniRead, restartTimer, %A_ScriptDir%\EtheriumRestart.ini, additionalParams, restartTimer		IniRead, path2emailer, %A_ScriptDir%\EtheriumRestart.ini, paths, path2emailer		IniRead, eMail, %A_ScriptDir%\EtheriumRestart.ini, emailParams, email		IniRead, subj, %A_ScriptDir%\EtheriumRestart.ini, emailParams, subj		IniRead, user, %A_ScriptDir%\EtheriumRestart.ini, emailParams, user		IniRead, from, %A_ScriptDir%\EtheriumRestart.ini, emailParams, from		IniRead, pass, %A_ScriptDir%\EtheriumRestart.ini, emailParams, pass		IniRead, server, %A_ScriptDir%\EtheriumRestart.ini, emailParams, server		IniRead, Port, %A_ScriptDir%\EtheriumRestart.ini, emailParams, Port		Run, % path2proxy		Sleep, 3000		ifWinExist, %path2proxy%			FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Run %path2proxy% ... Successfull`n, %A_ScriptDir%/EtheriumRestart.log				else					FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Run %path2proxy% ... UNSUCCESSFULL`n, %A_ScriptDir%/EtheriumRestart.log		Run, % path2miner minerParams		Sleep, 1000		ifWinExist, %path2miner%			FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Run %path2miner% %minerParams% ... Successfull`n, %A_ScriptDir%/EtheriumRestart.log				else					FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Run %path2miner% %minerParams% ... UNSUCCESSFULL`n, %A_ScriptDir%/EtheriumRestart.log		if (eMail<>"" and subj<>"" and user<>"" and from<>"" and pass<>"" and server<>"" and Port<>"" and path2emailer<>"")			emailFlag := 1loop	{		Sleep, restartTimer*60000		WinClose, D:\Mng\Etherium\eth_miner\ethminer.exe		Sleep, 1000		ifWinNotExist, %path2miner%			FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Ethminer was closed ... Successfull`n, %A_ScriptDir%/EtheriumRestart.log				else					FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Ethminer was NOT closed ... UNSUCCESSFULL`n, %A_ScriptDir%/EtheriumRestart.log		WinClose, D:\Mng\Etherium\eth-proxy\eth-proxy.exe		Sleep, 2500		ifWinNotExist, %path2miner%			FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Eth-proxy was closed ... Successfull`n, %A_ScriptDir%/EtheriumRestart.log				else					FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Eth-proxy was NOT closed ... UNSUCCESSFULL`n, %A_ScriptDir%/EtheriumRestart.log		Sleep, 5000		IniRead,  path2miner, %A_ScriptDir%\EtheriumRestart.ini, paths, path2miner	 	IniRead, path2proxy, %A_ScriptDir%\EtheriumRestart.ini, paths, path2proxy		IniRead, restartTimer, %A_ScriptDir%\EtheriumRestart.ini, additionalParams, restartTimer		Run, % path2proxy		Sleep, 5000		Run, % path2miner minerParams		Sleep, 1500		ifWinExist, %path2miner%			ifWinExist, %path2proxy%				{					FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Restart cycle... Success`n, %A_ScriptDir%/EtheriumRestart.log					if emailFlag						fnc_sendEmailMessage("Restart cycle... Success")				}					else						{							FileAppend, %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec% Restart cycle... Cannot start miner or proxy.... UNSUCCESSFULL`n, %A_ScriptDir%/EtheriumRestart.log							if emailFlag								fnc_sendEmailMessage("Restart cycle... UNSUCCESSFULL")													}	}returnfnc_sendEmailMessage(messageText)	{		IniRead, path2emailer, %A_ScriptDir%\EtheriumRestart.ini, paths, path2emailer		MailSend_String = -to %eMail% -from %from% -smtp %server% -port %Port% -sub %subj% +cc +bcc -v -auth-login -user %user% -pass %pass% -M "%messageText% %A_YYYY%%A_MM%%A_DD%_%A_Hour%:%A_Min%:%A_Sec%"		Run, % path2emailer MailSend_String		Sleep, 1000	}
4. Помещаем в одну папку наш ini-файл с настройками и .ahk файл со скриптом, проверяем пути к майнеру, прокси и отправщику почты
Если не хотим отправлять почту, в ini-файле оставляем в секции emailParams значения "" - пустые.
5. Запускаем наш .ahk файл, скрипт начинает выполняться, рядом с ним появится EtheriumRestart.log, думаю название говорит само за себя - незамысловатые логи работы скрипта.

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

Всем удачи!

  • 5



По ссылке AHK: https://www.autohotkey.com/

 

05e9524b1910.jpg

    • 0
    • 0

мой .ini

 

[paths]
path2miner=C:\Program Files\Ethereum 0.9.41\Release\ethminer.exe
path2proxy=C:\Program Files\Ethereum 0.9.41\Release\mining_proxy.exe
 
[additionalParams]
minerParams=" --farm-recheck 200 -G -F http://127.0.0.1:8332/a2b.1:pass --cl-local-work 128 --cl-global-work 16384"
restartTimer=10
[emailParams]
eMail=""
subj=""
user=""
from=""
pass=""
server=""
Port=""

при запуске .ahk выдаёт следующее ((

8feedfa11aec.jpg

что сделать ?
    • 0

Добрый день.

Аналогичная ошибка что и в посте выше пользователя a2b

    • 0
Навскидку у предыдущего юзера в ini файле неправильный синтаксис строк - нет двойных кавычек у строки с путями.
    • 0

решил свою проблему батником:

start mining_proxy.exe 
TIMEOUT 3
:Rs
start ethminer.exe --farm-recheck 200 -G -F http://127.0.0.1:8332/логин:пароль
TIMEOUT 600
taskkill.exe /f /im "ethminer.exe" /T
TIMEOUT 3 
goto :Rs
exit
    • 0

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

    • 0

я перезагружаю тока майнер. не трогая прокси.

    • 0

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

Сейчас необходимость в скрипте не такая острая, т.к. разработчик выпустил новую версию прокси в которой эта проблема пофиксена. Но есть сценарий применения в случае поочередного майнинга на разные пулы/кошельки. 

    • 0

После изучения и решения проблем, может поможет, такому же профану как я, чтобы не ковырялся до 2 часов ночи:
1) После копирования и вставки записи всего кода, в тексте типа
"path2proxy        IniRead,", надо чтобы везде, где много пробелов, все слова начинались с новой строки после пробелов.
2) Чтобы после выполнения команды скрипт не заканчивался, найти в тексте команду "Loop"  или как в тексте "loop", и поставить с новой строку.
 
moneymaker и a2b -- спасибо за ответы.
 

И еще moneymaker, при выполнении скрипта пишет, что команды как --fnc_sendEmailMessage  -- нет, я искал в мануале, есть только команда -- sendMessage --.

Для выполнения скрипта, удалил часть с данной командой.

    • 0

И еще moneymaker, при выполнении скрипта пишет, что команды как --fnc_sendEmailMessage  -- нет, я искал в мануале, есть только команда -- sendMessage --.

Для выполнения скрипта, удалил часть с данной командой.

Это была самописная функция отправки email сообщений, можете ее удалить))

    • 0

Это была самописная функция отправки email сообщений, можете ее удалить))

Ясно)) я так и сделал.

За скрипт Огромное спасибо, все работает.

    • 0

Пожалуйста, рад помочь сообществу.

    • 0

Для чего используете скрипт?

    • 0

Пытаюсь применить по прямому назначению: перезапуск прокси и майнера 

Помогло, скинутое?

    • 0

Пытаюсь применить по прямому назначению: перезапуск прокси и майнера

Я вам помогу, но попозже, сейчас очень занят.
    • 0

Август 2017

В П В С Ч П С
  12345
6789101112
131415161718 19
20212223242526
2728293031  

Поиск по блогу

Категории