2009-06-11 81 views
0

我正在試圖創建一個python服務器,它允許我遠程在Centos服務器上運行root命令,我還希望服務器能夠響應命令的結果。試圖創建一個Python服務器

我發現其中有一個基本的Python服務器上這裏另外一個問題,但它拋出一個錯誤,代碼:

#!/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 2009-06-11 13:27:08

回答

2

你需要保持在縮進同級整個代碼每個嵌套的聲明。

+0

林現在越來越: A = each.partition( ':') AttributeError:'str'對象沒有屬性'分區' 正確更改縮進並將<>更改爲!= – AshleyUK 2009-06-11 13:30:25

+0

忘記說錯誤是在第12行 – AshleyUK 2009-06-11 13:31:19