2013-02-16 4 views
1

원격 컴퓨터에서; pymongo의 mongostat를 사용하여 pymongo에서 mongostats를 얻으려면 어떻게해야합니까? 담당자 세트를 사용 중입니다. 다음 stdlib에서 subprocess module에서pymongo에서 몽고트 가져 오기

c = Connection("50.xxx.xxx.xxx:27017",replicaSet='test') 
rep_status = c.admin.command("replSetGetStatus") 
mongostat = c.admin.command("mongostat") 

pymongo.errors.OperationFailure: command SON([('mongostat', 1)]) failed: no such cmd: mongostat 

답변

1

봐는 :

from subprocess import call 
call(["ls", "-l"]) 

당신은 mongostat --host HOST --port PORT를 호출해야합니다. 이 복제 세트에 연결하려면 다음과 같은 형식으로 복제 세트의 씨앗 이름을 지정하고 세트 구성원의 씨앗 목록 수 :

<replica_set_name>/<hostname1><:port>,<hostname2:<port>,...

+1

닉이 작성한 내용을 약간 확장하면 mongostat는 mongodb 내부 명령이 아니며 mongodb 외부에서 실행되는 프로그램입니다. 즉, mongodb 내부에서 호출 할 수는 없지만 운영 체제에서 호출해야합니다. Nick이 언급 한 파이썬 호출 함수는 셸 ("ls -l"예제) – ACE

+0

에서와 같은 방식으로 시스템 호출을 작성하는 메서드이며 결과를 변수에 할당 할 수 있습니다. 'result = call ([ "ls", "-l"])'처럼? –

1

을 사용하여 serverStatus 명령 :

http://docs.mongodb.org/manual/reference/server-status/

당신은 mongostat에서의 c.admin.command("serverStatus")

모든 동일한 정보와 같은 pymongo에서 호출 할 수있는 것은 버리는 결과에 존재 verStatus (실제로 모든 mongostat은 serverStatus 명령을 실행하고 출력을 형식화/인쇄하는 등의 작업을 수행하고 있습니다).

관련 문제