Advertisement
Guest User

Untitled

a guest
Aug 11th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. import paramiko
  2.  
  3.  
  4. BUF_SIZE = 8192
  5. TIMEOUT = None
  6.  
  7. class SSHCommand:
  8. def __init__(self, address, username, password):
  9. print("Connecting to server on ip", str(address) + ".")
  10.  
  11. self._client = paramiko.client.SSHClient()
  12. self._client.set_missing_host_key_policy(
  13. paramiko.client.AutoAddPolicy())
  14. self._client.connect(address, username=username, password=password,
  15. look_for_keys=False)
  16.  
  17. self._transport = self._client.get_transport()
  18.  
  19. def close(self):
  20. self._client.close()
  21.  
  22. def send_cmd(self, cmd):
  23. chan = self._transport.open_session(timeout=TIMEOUT)
  24. chan.settimeout(TIMEOUT)
  25. chan.exec_command(cmd)
  26.  
  27. data = self._recv(chan)
  28. status = chan.recv_exit_status()
  29.  
  30. return status, data
  31.  
  32. def _recv(self, chan):
  33. buf = []
  34. while True:
  35. data = chan.recv(BUF_SIZE)
  36. if data == b'':
  37. break
  38.  
  39. data = data.decode("utf-8")
  40. data = data.replace('\r', '')
  41. buf.append(data)
  42.  
  43.  
  44. return "".join(buf)
  45.  
  46. client = SSHCommand("localhost", ...)
  47.  
  48. data = client.send_cmd("ls /")
  49. print(data)
  50.  
  51. data = client.send_cmd("ls /XXX")
  52. print(data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement