Вопрос

Я рассматриваю возможность создания сервера python, который позволяет мне удаленно запускать корневые команды на сервере Centos, я также хотел бы, чтобы сервер мог отвечать результатами команды.

Я нашел здесь другой вопрос, в котором есть базовый сервер 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-скрипт запускать shell-скрипт от имени root?

Спасибо, Эшли

Это было полезно?

Решение

вам необходимо поддерживать отступы на одном и том же уровне для каждого вложенного оператора по всему вашему коду.

Другие советы

На другой ноте:почему бы не использовать Скрученная матрица?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top