使用python和paramiko在交互式远程shell中运行commnad

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python和paramiko在交互式远程shell中运行commnad相关的知识,希望对你有一定的参考价值。

It is necessary on occasion to execute a command in interactive shell. (I needed to to get access to some env vars... ) While there are many way to accomplish this I opted to run my cmd in interactive mode.
To do so I had to write this little wrapper snippet and figured it might be useful for someone else.
  1. def interExecute(host,port,username,password,cmd):
  2. """Execute the given commands in an interactive shell."""
  3. transport = paramiko.Transport((host, port))
  4. transport.connect(username = username, password = password)
  5. chan = paramiko.transport.open_session()
  6. chan.setblocking(0)
  7. chan.invoke_shell()
  8.  
  9. out = ''
  10.  
  11. chan.send(cmd+' ')
  12.  
  13. tCheck = 0
  14.  
  15. # Wait for it.....
  16. while not chan.recv_ready():
  17. time.sleep(10)
  18. tCheck+=1
  19. if tCheck >= 6:
  20. print 'time out'#TODO: add exeption here
  21. return False
  22. out = chan.recv(1024)
  23.  
  24. return out

以上是关于使用python和paramiko在交互式远程shell中运行commnad的主要内容,如果未能解决你的问题,请参考以下文章

Python之远程控制库paramiko

python3使用paramiko操作远程机器

Python操作远程服务器paramiko模块介绍

python paramiko模块

Python 之Paramiko模块

Python远程连接主机之paramiko模块