2016-10-13 2 views
0

PHP SSH를 통해 서버에 연결하고 exec를 사용하여 해당 서버에서 파이썬 프로그램을 실행합니다. 내가 퍼티를 통해 해당 서버에 연결하여 명령 줄을 통해 동일한 명령을 실행하면PHP exec 명령이 파이썬 스크립트에서 전체 데이터를 반환하지 않습니다.

, 나는 같은 결과를 얻을 : ...

연결 ...

는 평가

데이터 검색 ....

1) 문 1

2) 문 2

.

.

.

N) 문의 N

파이썬 프로그램은 내가 SSH를 PHP를 통해 연결하면

, 내가 $ssh->exec("ls")를 실행하고 서버 명령으로 적절한로 전체 결과를 얻을 수 있습니다 ... 다른 사람에 의해 작성된 것입니다 선. 그러나 내가 시도 할 때 $ssh->exec("python myscript.py -s statement 0 0 0"); 나는 완전한 결과를 얻을 수 없었다. 그러나 나는 우연의 산물로서 닥치는대로의 선을 얻는다.

일반적으로 누군가가 동일한 문제를 경험하고 해결했다면 알려 주시기 바랍니다.

감사

+0

임의의 줄은 무엇입니까? 예제를 보여줄 수 있습니까? – furas

+0

미안하지만 출력을 표시 할 수 없습니다. 그러나 23) 문을 출력으로 간주하십시오. 하지만 질문에 대답 할만한 것이 있었어 – user3431704

답변

2

은 아마도 그것은 출력 버퍼링에 의해 발생합니다. 파이썬 명령에 -u 옵션을 추가하십시오. 이렇게하면 stdout, stdin 및 stderr이 버퍼링되지 않습니다.

+0

이 줄 어디 있니? $ ssh-> exec ("python myscript.py -s statement 0 0 0"); – user3431704

+0

내가 물어보고 싶은 또 한가지는 다음과 같습니다. 출력을 적절한 방법으로 얻는다면 출력을 적절한 아키텍처로 변환하는 방법은 무엇입니까? json 또는 xml처럼? – user3431704

+0

''python '다음에'-u'를 추가하십시오 :'$ ssh-> exec ("python -u myscript.py -s statement 0 0 0")' – mhawke

관련 문제