Как запустить бота на сервере
Небольшая статья о том, как заставить бота работать не на вашем компьютере, а где-то еще в интернете, круглосуточно, с хорошим постоянным интернет-соединением. Зачем? А что бы не приходилось комп держать постоянно включенным. Поехали.
Шаг первый. Арендуем выделенный сервер.
Я пользуюсь DigitalOcean.com, т.к. мне нравится сервис и удобство пользования. Для работы бота достаточно аренды виртуального сервера за 5$ в месяц.
Итак, регистрация. Тут нет ничего сложного. Переходим на сайт, и нажимаем SIGN UP:


Просят подтвердить почту - идем в свой почтовый ящик и подтверждаем



Нажмите Create и выберите Droplets

Выбираете Ubuntu (какая там будет доступна на данный момент), и сервер за 5$ в месяц.
Ниже будет выбор страны базирования сервера, прочее, что вам пока что не нужно, проматывайте вниз и нажимайте зеленую кнопку Create



Шаг второй. Подключение к серверу и смена пароля.
Так как сервер на базе Linux, то придется немного изменить свои привычки, и освоить кое-что новое. Нам понадобятся две программы, первая – консольный клиент putty (почувствуй себя хакером ;)) Качаем тут

(если не знаете, какую качать, качайте первую).
После скачивания и установки запускайте, и давайте подключимся к вновь созданному серверу. Программа запросит реквизиты для подключения. Укажите IP адрес, который вам прислали в письме, и нажмите Enter.

Появится черное окно, и запрос, доверяете ли вы этому серверу – нажимайте «Да».

После этого в черном окне появится приглашения на ввод имени пользователя и пароля. Введите root, нажмите Enter, введите пароль из почты. Важно – пароль не отображается на экране, так что нет повода для паники. Совет – скопированный текст можно вставлять правой кнопкой мыши, так что введите сначала root, Enter, потом копируйте пароль на почте, нажимайте правой кнопкой мыши в черном окне и Enter – и вы должны попасть на свой сервер.
От вас сразу же потребуют, что бы вы сменили пароль, так что
- Укажите текущий пароль (он не отобразится) Enter.
- Придумайте и введите новый пароль (он тоже не будет отображаться), Enter, и
- Еще раз укажите новый пароль. Запомните, а лучше запишите его!
Если пароль будет слишком простым, то система ругнется и попросит придумать новый.

Шаг третий – закинуть бота на сервер.
Тут нужна будет программа WinSCP. Скачать её можно отсюда https://winscp.net/eng/download.php.



У вас будут открыты две панели – слева ваш компьютер, справа – ваш сервер. Нужно из левой панели в правую перетащить ваш файл с ботом. Найдите где там он у вас лежит, и мышкой перетащите – я уже перетащил:

В файле должны быть уже прописаны ключи и все такое. Если у вас несколько ботов, перетаскивайте всех, под разными названиями, конечно.
Шаг четвертый – запуск бота.
Возвращаемся в окно putty, что бы проверить работу бота. Если putty уже закрылось, то переподключитесь, указав уже новый пароль. Про старый в любом случаем уже можно забыть.
Итак, вы на сервере, для начала давайте проверим, что все работает как надо.
Выполните команду
python3.5 ./exmo.py
И вы должны увидеть что-то вроде:

Выполните команду
screen
Вы увидите окно с текстом, нажмите просто Enter

echo $STY
Если вернется строка с информацией, значит вы внутри виртуальной сессии.
Так что запускайте бота тут, в этой виртуальной сессии
python3.5 ./exmo.py
и он будет работать круглосуточно.
Проверьте, закройте окно putty и подключитесь заново. Ничего не происходит, бота нет?! На самом деле, он продолжает работать в фоне. Выполните команду
screen -ls
и вы увидите запущенные виртуальные сессии

Число в начале строки – это PID процесса. Что бы подключится к выбранному экрану, выполните команду
screen -r -d 2013
2013 надо будет заменить на ваше число, разумеется. И.. вы снова попадете к боту и можете посмотреть, чем он там занимается.

Дополнительно.
Что бы запустить несколько ботов, надо для каждого запустить свою сессию screen, и в каждой сессии запускать по боту. Т.е. упрощенно говоря, выполняете screen, Enter, python3.5 ./bot1.py, после чего закрываете putty (либо нажимаете Ctrl+A+D), и опять screen, Enter, python3.5 ./bot2.py и т.п.
Так же процитирую полезную иформацию из комментариев:
Я запустил у себя на сервере сразу 8 ботов и чтобы не путаться в файлах и не запоминать цифры при обращении к нужному боту создавал их под именами. Вызывается командой:
screen -S "----------" (вместо ------ написать название валюты например BTC)
получается запись:
463.BCH (12/19/2017 09:55:02 AM) (Detached)
351.ETH (12/19/2017 09:38:11 AM) (Detached)
32721.ZEC (12/19/2017 09:29:58 AM) (Detached)
31661.XMR (12/19/2017 04:00:47 AM) (Detached)
18677.XRP (12/15/2017 05:52:05 PM) (Detached)
18534.ETC (12/15/2017 05:49:01 PM) (Detached)
18470.LTC (12/15/2017 05:47:43 PM) (Detached)
18408.BTC (12/15/2017 05:45:51 PM) (Detached)
И второе, когда пробовал как торгует бот насоздавал кучу сессий, потом их останавливал и создавал новые, но не работающие сессии остались и сильно мешали, потом нашел команду по их удалению:
Подключиться к сессии screen -r -d 2013 (число-работающий бот) Cntr+a и ввести :quit
screen -S "----------" (вместо ------ написать название валюты например BTC)
получается запись:
463.BCH (12/19/2017 09:55:02 AM) (Detached)
351.ETH (12/19/2017 09:38:11 AM) (Detached)
32721.ZEC (12/19/2017 09:29:58 AM) (Detached)
31661.XMR (12/19/2017 04:00:47 AM) (Detached)
18677.XRP (12/15/2017 05:52:05 PM) (Detached)
18534.ETC (12/15/2017 05:49:01 PM) (Detached)
18470.LTC (12/15/2017 05:47:43 PM) (Detached)
18408.BTC (12/15/2017 05:45:51 PM) (Detached)
И второе, когда пробовал как торгует бот насоздавал кучу сессий, потом их останавливал и создавал новые, но не работающие сессии остались и сильно мешали, потом нашел команду по их удалению:
Подключиться к сессии screen -r -d 2013 (число-работающий бот) Cntr+a и ввести :quit
Если требуется внести изменения в бота, то алгоритм будет следующим: Вы подключаетесь к сессии бота, как написано выше, нажимаете Ctrl+C, что бы его остановить, с помощью winSCP закидываете новую версию файла на сервер (или правите прямо там), и заново запускаете python3.5 ./exmo.py
UPD. Для того, что бы установить ta-lib и прочее, нужно выполнить эти команды:
apt install python3-pip
pip3 install numpy
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -xvzf ./ta-lib-0.4.0-src.tar.gz
cd ./ta-lib/
./configure --prefix=/usr
make
make install
pip3 install TA-lib
Заключение
Геморрой, согласен) Но это если в первый раз делаешь. Зато потом это все работает как часы, не отъедает лишней памяти, не приходится ни за что переплачивать, позволяет паралелльно с ботом держать еще и свой сайт, да и кучу всего. В общем, дорогу осилит идущий, удачи вам в ваших начинаниях!
Комментарии
Отправить комментарий