繁体   English   中英

如何从外部使用python脚本在mininet提示符下运行命令

[英]How to run the commands inside the mininet prompt using python scripts from outside

我是mininet的新手。 我想运行mininet命令以从python脚本(如“ nodes”,“ dump”)运行。 我可以创建拓扑,但不能通过脚本使用这些命令。 我正在使用Ubuntu 14.04。

import subprocess as sb
import os
print "Single Switch and 4 Hosts per switch topology"
print "Creation of topology"
os.system(" sudo mn --topo = single,4",shell=True)
os.system("nodes")

错误:

sh: 1: nodes: not found
32512

我不想通过python脚本创建拓扑,我只想使用mininet命令。

根据nirO的建议,您应该使用Mininet Python库。 通读https://github.com/mininet/mininet/wiki/Introduction-to-Mininet,以获得有关如何创建拓扑的更好的主意。 创建完成后,您可以使用hostObject.cmd('您的命令转到此处')。 mininet中的每个主机都是使用其自己的名称空间创建的。 此“ cmd”在主机的名称空间中执行给定命令。 例如:host1.cmd(“ ifconfig”)#此命令返回主机的IP信息

问题在于mininet是交互式CLI。 您不能简单地调用它,然后在交互式CLI阻止时传递另一个命令。

有解决方法。 在这里看: 用Python包装交互式CLI

并检查pexpect以更舒适地与交互式CLI进行交互。

很高兴我发现了这个问题。 我有一个性质非常相似的子问题。 我了解您可以使用h1.cmd('ifconfig')从python从mininet CLI执行命令,但是有没有办法从python到mininet>提示符执行相同的mininet> 即不将其指向拓扑中的特定主机(我正在模拟故障,因此某些主机已断开连接)。 net.cmd('python module.py')这样的东西吗? @阿比曼尤·辛格@ nir0s

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM