Недавно были выполнено с удаленной командой paramiko питона, обнаружил, что если слова, написанные непосредственно после каждой команды будут выполнять ошибку, когда точка с запятой, если не точка с запятой, суб-команды для выполнения команды, никакого эффекта, таких как переключатели пути и т.д., а затем в Интернете, чтобы найти соответствующие пути, до тех пор, как exec_command (ЦМД, get_pty = True) после команды заявления добавил get_pty = True в. Код выглядит следующим образом:
Защиту exec_command (я, CMD): клиент = paramiko.SSHClient () попробуйте: client.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) client.connect (self.hostip, self.port, имя пользователя = self.username, пароль = self.pwd , тайм - аут = 20) STDIN, STDOUT, STDERR = client.exec_command (CMD, get_pty = True) # logWriteToTxt (self.sitename + "执行" + Cmd) разреш = "" результаты = stdout.readlines () для строки в результатах: Рез + = строка попытка: ERR = stderr.readlines () для строки в ERR: Рез + = линия , за исключением: пропуска # Результаты = stdout.readlines () # logWriteToTxt ( "在" + self.sitename + "执行" + Cmd + Рез) возвращение разрешения , за исключением: пройти в конце концов: client.close ()