是否可以在多个TCP客户端上远程使用Python的cmd模块?



我创建了一个我在服务器上运行的python脚本,该脚本提供了一个简单的命令行界面,用于运行自定义配置脚本。我正在使用CMD模块来执行此操作,到目前为止,它的运作良好:

from cmd import Cmd
class MyPrompt(Cmd):
    def do_run1(self, args):
        print("running config1")
    def do_run2(self, args):
        print("running config2")
if __name__ == '__main__':
    prompt = MyPrompt()
    prompt.prompt = '> '
    prompt.cmdloop('Starting prompt...')

我还创建了另一个脚本,该脚本将打开TCP服务器并在新线程中收听远程客户端。Clients可以将配置命令发送到服务器,并且服务器将执行它们并将其发送回任何输出。现在,客户非常基本。它可以发送任何内容,并且无法访问CMD模块提供的NICE接口。它也可以访问服务器以解析接收到的消息并找出客户端想要运行的命令(通过其他解析器,请通过长时间)。

我正在尝试结合这两个脚本,但是我在找出最好的方法时遇到了很多麻烦。我想允许服务器上的某人在本地使用CMD LScript,但是我也希望CMD脚本接受远程客户端,并同时让他们访问CMD提示。另外,我需要一种在本地输入命令的方法,并且远程客户端发送的命令将添加到队列中,以便一次运行一个配置命令(每个命令需要几分钟才能运行,并且不能在平行)。

任何人都可以提供一些有关如何扩展我的CMD脚本以支持远程连接的示例或指导?我不知道从哪里开始,并且会非常感谢任何帮助!

您可能最好研究和学习Ansible。

虽然我没有经验,但强烈建议我实施并使用python。

文档似乎很好。

(我不使用它,因为我不需要做这种事情 - 我通常进行应用程序开发)

最新更新