Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 17, 2021 15:26:29

927863
Зарегистрирован: 2021-02-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Команда через SSH с Android на Windows ПК

Извините, в программировании чайник. Есть следующая задача. Запустить на Android SSH-сессию и передавать команду на выключение/гибернацию ПК, на котором установлена Windows и запущен SSH-сервер. Есть такая программа SSH button. Через неё без проблем получается это сделать. Просто указываю в настройках логин, пароль, порт и команду. (см. скриншот)

Но мне нужен именно скрипт в виде отдельно файла, который после выполнения задачи может быть удалён. Вроде с помощью python это можно реализовать. Рылся долго в интернете, удалось собрать такую конструкцию.

 from paramiko import SSHClient, AutoAddPolicy
hostname='100.100.100.100'
username='user'
password='12345678'
cmd="%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate"
client = SSHClient()
client.set_missing_host_key_policy(AutoAddPolicy())
client.connect(hostname, username=username, password=password)
client.exec_command(cmd)
print("Connected to %s" % hostname)

На сервере вижу, что подключение вроде происходит, но команда не выполняется. Может кто знает, что не так? Или чем ещё, кроме питона, можно такое сделать?

Отредактировано 927863 (Фев. 17, 2021 15:28:35)

Прикреплённый файлы:
attachment screen1.jpg (83,7 KБ)

Офлайн

#2 Фев. 17, 2021 20:54:35

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Команда через SSH с Android на Windows ПК

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



Офлайн

#3 Фев. 17, 2021 21:37:57

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Команда через SSH с Android на Windows ПК

замените ваше

 cmd="%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate"
на
 cmd=r"%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate"
не зря же r по другому подсвечивается.



Офлайн

#4 Фев. 17, 2021 22:53:03

927863
Зарегистрирован: 2021-02-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Команда через SSH с Android на Windows ПК

doza_and
замените ваше
Человечище! Заработало. Всего одна буква. Насчёт подсветки только не понял. Здесь, на сайте, и в редакторе на Android - одинаково чёрный цвет. Погуглил на тему применения r, но пока не нашёл конкретики, почему и где надо использовать. Буду благодарен, если направите в нужном направлении.

В развитие темы, может кто с ходу напишет, чем на Android можно запускать скрипты в бэкграунде? Сам скрипт редактировал в Pydroid 3. Но ассоциировать IDE c файлами *.py, на выполнение, нельзя.

Офлайн

#5 Фев. 17, 2021 23:35:01

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Команда через SSH с Android на Windows ПК

Как и в любом языке программирования питон предоставляет возможность включать в строковые литералы непечатаемые символы. Например символ перевода каретки обозначается “\r”. Подавить такую интерпретацию можно либо написав два бек слеша либо запретив интерпретацию для всей строки, что и делает символ r



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version