python paramiko模塊遠程執行多條命令


最近一直在用python的paramiko執行遠程命令,發現如果直接寫的話在每條命令后加分號執行時會報錯,如果不加分號,分一條命令一條命令地執行,起不到作用,如切換路徑等,后面在網上找到了相關的方法,只要在exec_command(cmd,get_pty=True)在命令語句后加get_pty=True即可。代碼如下:

    def exec_command(self,cmd):
        client = paramiko.SSHClient()
        try:
            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            client.connect(self.hostip, self.port, username=self.username, password=self.pwd, timeout=20)
            stdin, stdout, stderr = client.exec_command(cmd,get_pty=True)
            # logWriteToTxt(self.sitename + "執行"+cmd)
            res=""
            results = stdout.readlines()

            for line in results:
                res+=line
            try:
                err=stderr.readlines()
                for line in err:
                    res+=line
            except:
                pass
                # results = stdout.readlines()
            # logWriteToTxt("在" + self.sitename + "執行"+cmd + res)

            return res
        except:
            pass
        finally:
            client.close()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM