Python выполняет удаленное приложение, используя ресурс сервера
Я пытаюсь запустить исполняемое приложение Matlab из Python на удаленном сервере.
Я использовал следующий код:
os.system("\\Server-01\\D$\\matlab_t.exe 7.25 16") # 7.25 and 16 are input arguments of matlab_t.exe
Приведенный выше код работает на моей локальной машине. Я заметил, что он использует ресурсы (процессор и память) моей локальной машины, в то время как я пытаюсь использовать ресурсы на удаленном сервере.
Могу ли я узнать, как я могу выполнить это, используя ресурс сервера?
Благодарю.
2 ответа
Эта команда будет выполняться на вашем компьютере, путь может указывать на удаленный сервер, но никто не сказал удаленному серверу, что он должен выполнять код, только что они должны обслуживать matlab_t.exe
файл.
Вы должны использовать механизм для доступа к удаленному серверу. Обычно для этой цели используется ssh, но демон ssh должен быть запущен на удаленном сервере, а также у вас должен быть доступ (об этом у администратора).
Тогда вы можете использовать Python так:
import paramiko
ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute_on_remote_server)
В python команда os.system выполняет только команду на локальном компьютере. Вам нужна локальная команда, которая заставит сервер выполнить ее самостоятельно.
Если сервер на базе Windows, то вы можете использовать PsExec для этого, если сервер на базе Linux, тогда использование ssh с библиотекой python (как демонстрирует другой ответ), вероятно, будет правильным решением.
Используя PsExec, ваша команда в os.system будет выглядеть примерно так:
psexec.exe \\Server-01 -u <username> -p <password> D:\matlab_t.exe 7.25 16
Если ваш сервер не нуждается в аутентификации, вы можете удалить флаги имени пользователя и пароля.