Python Paramiko, continuing the interaction for a command in interactive shell - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Networking (https://python-forum.io/forum-12.html) +--- Thread: Python Paramiko, continuing the interaction for a command in interactive shell (/thread-8915.html) |
Python Paramiko, continuing the interaction for a command in interactive shell - aditya_g01 - Mar-13-2018 I have been trying to automate a task using python, in which I ssh to a remote server using paramiko, bring up the interactive shell and run the command. The problem I'm facing is that the command I execute requires further more inputs to be given to it . Consider the below example, which happens on the cli, if the command is manually executed on the server [inline]bash@:restore-config Select the config to restore a.conf b.conf.c.conf >a.conf Are you sure you want to proceed(Y/N)? >Y ******the execution begins and completes by itself*****[/inline] The problem with my code is after the restore-config is executed, the paramiko channel gets closed without asking the input(in case of above example,"select the config to restore"),it displays restore-config aborted, how can I carry on the interaction? My code is as follows: import paramiko ssh=paramiko.SSHClient() ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() ) ssh.connect( '127.0.0.1',username='abcd',pass='1234' ) ishell=ssh.invoke_shell() def run_cmd(cmd): stdin,stdout.stderr=ssh.exec_command(cmd) for l in stdout: print "stdout:%s" %l.strip() for l in stderr: print "Error:%s" %l.strip() ssh_stdin.write('a.conf') for l in stdout: print "stdout:%s" %l.strip() for l in stderr: print "Error:%s" %l.strip() ssh_stdin.write('Y') for l in stdout: print "stdout:%s" %l.strip() for l in stderr: print "Error:%s" %l.strip() run_cmd(restore-config)The output is similar as follows
|