Friday, 27 August 2021

Disable remote prompt using pxssh

I am using pxssh to log in and issue some commands on a remote server.

My code looks like:

def login(self):
  try:
     self.connection = pxssh.pxssh()
     self.password = getpass.getpass('Password: ')
     self.connection.login(self.host, self.username, self.password)
  except pxssh.ExceptionPxssh:
     raise("Failed to login.")

def send_command(self, command):
  try:
     self.connection.sendline(command)
     print(self.connection.before)
  except pxssh.ExceptionPxssh:
     print("Failed to execute command.")

def logout(self):
  try:
    self.connection.logout()
  except pxssh.ExceptionPxssh:
    print("Failed to logout.")

The output of running some commands is:

Downloading Terraform package.
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Unzipping Terraform package
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Cleaning up the terraform_0.11.2_linux_amd64.zip package
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"
Move Terraform file
b" unset PROMPT_COMMAND\r\n\x1b]0;test_user@d01c1ad4ad1c: ~\x07\x1b[01;32mtest_user@d01c1ad4ad1c\x1b[00m:\x1b[01;34m~\x1b[00m$ PS1='[PEXPECT]\\$ '\r\n"

I would like to completely remove all lines in the output that contains unset. Is there any attribute that does that or is there any workaround for that?



from Disable remote prompt using pxssh

No comments:

Post a Comment