2014-01-06 2 views
0

저는 Python에서 Paramiko 모듈을 사용하여 다른 시스템에 ssh를 실행하고 명령을 실행합니다.특정 시간 동안 paramiko 명령을 실행하십시오.

명령은 출력을 연속적으로 생성하는 프로그램을 호출합니다. 내 목표는 다음과 같이 뭔가를 실행하는 것입니다 : X의 초 후에 "내 명령이"단지 Ctrl + C을 눌러 표준 출력에 출력을 반환 같이 종료되는 추가 제약 조건

stdin, stdout, stderr = ssh.exec_command(mycommand) 

.

방법 (또는 다른 방법)이 있습니까? 원격 호스트가 유닉스를 실행하는 경우

답변

1

, 당신은 mycommand으로이 작업을 수행하는 쉘 스크립트를 전달할 수 있습니다

... 1388989588.39 
... 1388989588.49 
... 1388989588.59 
... 1388989588.69 
... 1388989588.79 
... 1388989588.89 
... 1388989588.99 
... 1388989589.1 
... 1388989589.2 
... 1388989589.3 
... 1388989589.4 
... 1388989589.5 
... 1388989589.6 
... 1388989589.71 
... 1388989589.81 
... 1388989589.91 
... 1388989590.01 
... 1388989590.11 
... 1388989590.21 
... 1388989590.32 
:

실행
stdin, stdout, stderr = client.exec_command(
    """ 
    # simple command that prints nonstop output; & runs it in background 
    python -c ' 
import sys 
import time 

while 1: 
    print time.time() 
    sys.stdout.flush() 
    time.sleep(0.1) 
    ' & 
    KILLPID=$!; # save PID of background process 
    sleep 2; # or however many seconds you'd like to sleep 
    kill $KILLPID 
    """) 

는,이 2 초 동안이 개 100ms 간격으로 현재 시간을 출력

다음 정상적으로 멈 춥니 다.

관련 문제