2009-06-11 5 views
0

파이썬 서버를 만들려고하는데, 원격으로 CentOS 서버에서 루트 명령을 실행할 수 있습니다. 서버가 명령의 결과로 응답 할 수 있기를 바랍니다. .파이썬 서버 만들기 시도

내가 그러나 그것은 오류가 발생, 기본 파이썬 서버가 여기에 또 다른 질문을 발견 한 코드는 다음과 같습니다

#!/usr/bin/python 
import os 
import socket 
print " Loading Bindings..." 
settings = {} 
line = 0 
for each in open('/root/actions.txt', 'r'): 
line = line + 1 
    each = each.rstrip() 
    if each <> "": 
    if each[0] <> '#': 
     a = each.partition(':') 
     if a[2]: 
     settings[a[0]] = a[2] 
     else: 
     print " Err @ line",line,":",each 
print " Starting Server...", 
port = 12345 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind(("", port)) 
print "OK." 
print " Listening on port:", port 
while True: 
    datagram = s.recv(1024) 
    if not datagram: 
     break 
    print "Rx Cmd:", datagram 
    if settings.has_key(datagram): 
     print "Launch:", settings[datagram] 
     os.system(settings[datagram]+" &") 
s.close() 

내가 python vzctl.py을 사용하여 실행합니다.

File "vzctl.py", line 9 
    each = each.rstrip() 
    ^
SyntaxError: invalid syntax 

사람이 오류의 어떤 생각을 가지고 있는가, 그것은 가능할 것이다 경우 명령의 출력에 응답하는 서버의 기능을 추가 : 나는 다음과 같은 오류가 발생합니다. 당신은 당신의 코드에 걸쳐 중첩 된 각 문에 대해 동일한 수준으로 들여 쓰기를 계속해야 How can I have a PHP script run a shell script as root?

감사합니다, 애슐리

+1

는 <> 사용 사용하지 않는 = 여기를 참조하십시오! (':') 을 : http://docs.python.org/library/stdtypes.html#comparisons – SilentGhost

답변

2

:

당신은이 스크립트의 소스를 볼 수 있습니다.

+0

임은 이제 점점 A = each.partition을 AttributeError는 'STR'개체가 올바르게 들여 쓰기를 변경하고에><변경 한 후 더 속성 '파티션' 이 없습니다 = – AshleyUK

+0

는 오류가 12 – AshleyUK

+0

파티션이 파이썬 2.5에 추가 된 라인에 있습니다 말을 잊어 버렸 이전에 사용하는 경우! 파이썬의 버전, 당신은이 오류가 발생합니다. – SilentGhost

2

다른 메모 : TwistedMatrix을 사용하지 않는 이유는 무엇입니까?

+0

웹 서버 인 것처럼 보입니까, 아니면 웹 사이트를 계속 읽는 중입니까? – AshleyUK

+0

그것은 네트워크 프레임 워크입니다 : 당신은 자신의 네트워크 서버를 개발할 수 있습니다. 여기를보세요 http://twistedmatrix.com/projects/core/documentation/examples/ – Keeper

+0

뇌가 뒤틀린 경우, 자신 만의 롤을 시도하는 것보다 훨씬 행복 할 것입니다. 그러나 설명서가 약간 희박하다는 점에 유의하십시오. – DrBloodmoney