2017-11-29 31 views
3

인수로 파일 목록을 시도 할 때까지 필자는 paramiko의 exec_command를 성공적으로 사용했습니다. 내 기능은 다음과 같습니다paramiko ls 여러 파일 출력이 잘림

def jz_orion_ssh_sout_list(cmd): 
    with paramiko.SSHClient() as ssh: 
     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
     ssh.connect(orion['host'], username=orion['username'], password=orion['password']) 
     ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd) 
     sout = ssh_stdout.readlines() 
     serr = ssh_stderr.readlines() 
     return sout 

cmd='ls -l /my/path/file.txt'가 잘 작동하지만 cmd='ls -l /my/path/file1.txt file2.txt file3.txt', 그것은 오직은 File2.txt 반환 할 때. 대상 서버에서 직접 실행되는 후자의 cmd는 3 개의 파일을 모두 반환합니다.

paramiko에서 작동하게 만드는 방법은 무엇입니까?

추신. 내가 paramiko에서 작동하는 또 다른 구문을 발견했습니다 : cmd='ls -l /my/path/{file1.txt,file2.txt,file3.txt}'하지만 여전히 내가 이전에 하나의 실패 원인을 알고 싶습니다.

+0

'ls -l/my/path/file [1-3] .txt'를 사용하지 않는 이유는 무엇입니까? – haifzhan

답변

0

그것은 당신의 cmd 문제 :

➜ ls example 
file1 file2 file4 

파일 2

가 발견되지 않은 :

➜ ls -l example/file1 file2 
ls: file2: No such file or directory 
-rw-r--r-- 1 haifzhan staff 391 28 Nov 10:23 example/file1 

ls -l example/file1 file2ls 파일 2를 말하고 현재 디렉토리 아래에있다 예를 들어 , 나는 예를 들어 폴더 아래에 3 개 개의 파일이 폴더 예 이외. 우리는 단지에 대한 파일 1과 파일 2

➜ ls -l example/file[1-2] 
-rw-r--r-- 1 haifzhan staff 391 28 Nov 10:23 example/file1 
-rw-r--r-- 1 haifzhan staff 81 28 Nov 10:26 example/file2 

대안 명령을 실행하면

:

작동 ls -l /my/path/{file1.txt,file2.txt,file3.txt} 귀하의 경우에는
ls -l example/file1 example/file2 
-rw-r--r-- 1 haifzhan staff 391 28 Nov 10:23 example/file1 
-rw-r--r-- 1 haifzhan staff 81 28 Nov 10:26 example/file2 

당신이 모든 파일을 /my/path

아래에 그 ls을 말하고있다이다