2017-05-05 12 views
0

paramiko.SSHClient.exec_command()를 사용하여 원격 서버에서 명령을 실행하고 있습니다. 누군가 invoke_shell (width = 150)과 같이 너비를 변경할 수 있는지 알고 있습니까?증가 paramiko.SSHClient.exec_command() width

drwx------. 6 myuser myuser 4096 25 avril 15:59 
. 
drwxr-xr-x. 14 root root  4096 5 mai 15:05 
.. 
-rw-------. 1 myuser myuser 2818 28 avril 11:09 
.bash_history 
-rw-r--r--. 1 myuser myuser 340 14 avril 14:16 
.bashrc 

내가 원하는 :

내가 얻을 exec_command("ls -la")

drwx------. 6 myuser myuser 4096 25 avril 15:59 . 
drwxr-xr-x. 14 root root  4096 5 mai 15:05 .. 
-rw-------. 1 myuser myuser 2818 28 avril 11:09 .bash_history 
-rw-r--r--. 1 myuser myuser 340 14 avril 14:16 .bashrc 

(사용 exec_command을 invoke_shell되지 않음)

내 코드 :

ssh_client = paramiko.SSHClient() 
mykey   = paramiko.RSAKey.from_private_key_file("/path/to/my/key", password="passphrase") 
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh_client.connect("myserver.mydomain.com", username="myuser", pkey=mykey) 
transport  = ssh_client.get_transport() 
agent_channel = transport.open_session() 
agent_handler = paramiko.agent.AgentRequestHandler(agent_channel) 
stdin, stdout, stderr = ssh_client.exec_command("ls -la") 
+0

원격 서버의 구성을 통해이 작업을 수행 할 수 있다고 생각합니다. 그게 너에게 효과가 있니? 어떤 OS를 실행하고 있습니까? – sytech

+0

글쎄, 내 리눅스 쉘에서'ssh [email protected]을 실행하면 "ls -la"'나는 내가 원하는 것을 얻는다. 서버 구성이 아니라고 생각합니다. CentOS7에서 파이썬 코드를 실행합니다. –

+0

문제를 복제 할 수 없습니다. 'exec_command'를 사용하면'pty' 터미널을 설정하지 않을 수도 있습니다. 어쩌면 그 터미널과 관련이 있습니다. 'exec_command'와'ssh' 세션에서'env'를 실행하고 환경 변수가 어떻게 다른지 볼 수 있습니다. – tdelaney

답변

0

확인 발견 된 그것은 단지 pprint 이상한 행동이었습니다. 수신 된 회선을 목록에 넣은 다음 pprint이 목록에 넣습니다. 내가하는 경우 :

for line in received: 
    print(line) 

그렇다면 괜찮습니다. 인쇄 pprint는 :

['-rw-r----- 1 myuser mygroup  23228063744 06 mai 11:41 ' 
'my_file.txt-rw-r----- 1 ' 
... 

난 이유를 모르겠어. 자, pprint 사용을 중단하겠습니다.