尝试创建Python服务器

0 投票
2 回答
697 浏览
提问于 2025-04-15 12:10

我正在尝试创建一个Python服务器,这样我就可以远程在Centos服务器上运行root命令,同时希望这个服务器能够把命令的结果返回给我。

我在这里找到另一个问题,里面有一个基本的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

有没有人知道这个错误是什么?还有,是否可以让服务器在执行命令后返回输出结果?

你可以在这里查看这个脚本的源代码:如何让PHP脚本以root身份运行shell脚本?

谢谢,
Ashley

2 个回答

2

换个话题:为什么不试试 TwistedMatrix 呢?

2

你需要在代码中保持每个嵌套语句的缩进水平一致。

撰写回答