Advertisement
Guest User

Untitled

a guest
Jul 4th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #!/usr/bin/env python2.7
  2. import os
  3. import sys
  4. from pxssh import pxssh as PXSSH
  5. import getpass
  6.  
  7.  
  8. class Debug_PXSSH(PXSSH):
  9.  
  10. def sendline(self, input=''):
  11. sys.stderr.write('\n[sendline::input={!r}]'.format(input))
  12. return PXSSH.sendline(self, input)
  13.  
  14. def try_read_prompt(self, timeout_multiplier):
  15. prompt = PXSSH.try_read_prompt(self, timeout_multiplier)
  16. sys.stderr.write('\n[try_read_prompt::prompt={!r}]'.format(prompt))
  17. sys.stderr.flush()
  18. return prompt
  19.  
  20. def sync_original_prompt (self, sync_multiplier=1.0):
  21. from pexpect import TIMEOUT
  22. import time
  23. sys.stderr.write('\n[sync_original_prompt]')
  24. sys.stderr.flush()
  25. self.sendline()
  26. time.sleep(0.1)
  27. try:
  28. self.try_read_prompt(sync_multiplier)
  29. except TIMEOUT:
  30. pass
  31. self.sendline()
  32. x = self.try_read_prompt(sync_multiplier)
  33. self.sendline()
  34. a = self.try_read_prompt(sync_multiplier)
  35. self.sendline()
  36. b = self.try_read_prompt(sync_multiplier)
  37. ld = self.levenshtein_distance(a,b)
  38. len_a = len(a)
  39. if len_a == 0:
  40. sys.stderr.write('\n[len_a=0]')
  41. return False
  42. val = float(ld)/len_a
  43. sys.stderr.write('\n[val={}, ld={}, len_a={}]\n'
  44. .format(val, ld, len_a))
  45. sys.stderr.flush()
  46. if val < 0.4:
  47. return True
  48. sys.stderr.write('\n[! distance too far:'
  49. '\n{!r}\n{!r}]\n'.format(a, b))
  50. sys.stderr.flush()
  51. return False
  52.  
  53.  
  54. # setup variables
  55. username = os.environ['USER']
  56. hostname = raw_input('hostname: ')
  57. username = raw_input('username [{}]: '.format(username)).strip() or username
  58. port = int(raw_input('port [22]: ').strip() or '22')
  59. password = getpass.getpass('password: ')
  60.  
  61. # create and begin session,
  62. session = Debug_PXSSH()
  63. session.login(hostname, username, password, port=1984)
  64. session.sendline('uptime')
  65. session.prompt()
  66. sys.stderr.write('\n[session.before={!r}]'.format(session.before))
  67. session.logout()
  68. sys.stderr.write('\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement